Google Cloud Professional Cloud Developer — Question 69
You are designing a schema for a Cloud Spanner customer database. You want to store a phone number array field in a customer table. You also want to allow users to search customers by phone number.
How should you design this schema?
Answer options
- A. Create a table named Customers. Add an Array field in a table that will hold phone numbers for the customer.
- B. Create a table named Customers. Create a table named Phones. Add a CustomerId field in the Phones table to find the CustomerId from a phone number.
- C. Create a table named Customers. Add an Array field in a table that will hold phone numbers for the customer. Create a secondary index on the Array field.
- D. Create a table named Customers as a parent table. Create a table named Phones, and interleave this table into the Customer table. Create an index on the phone number field in the Phones table.
Correct answer: D
Explanation
Answer D is correct because interleaving the Phones table with the Customers table allows for efficient querying of phone numbers related to customers, and creating an index on the phone number field enhances search performance. Option A does not allow for efficient searching, while option B separates the data unnecessarily. Option C, while it allows searching, does not leverage the benefits of interleaving, which is optimal for this use case.