For the model I am designing, read speed is the highest priority. That being said, I have a Customers table with information about Claims.
Here is the design today: Table: Customers RowId: CustomerId Family: Claims Column: ClaimId Value: JSON(ClaimId, Status, Description, From) I am storing the ClaimsInfo as a JSON object. This JSON object will be displayed in a tabular format after querying. Now I get an additional requirement to sort claims by status. I resolve this by adding a new Family called 'Status'. (Denormalization + Redundancy) Table: Customers RowId: CustomerId Family: ClaimStatus Column: ClaimId Value: *String* My concern is, do I continue down this path when more query requirements are added to the system? For example, when they want to retrieve by 'From', then I add another family called 'From'? Should I be creating a new table in that case to support the new family? Admittedly, the data in these columns is not huge, but I am worried about doing multiple 'Puts' when the value changes. Am I on the right track by adding redundancy to keep up with read performance? Thanks.