Grokking the System Design Interview, Volume II
Ask Author
Back to course home

0% completed

Vote For New Content
P B
Recommendations about tables schema

P B

Jan 9, 2026

  1. Since "user_id" is the primary key in "users" table, assuming "user_id" isn't reused between tenants. If so, "tenant_id" is a redundant information in "scheduled_notifications" table since it can be looked up from "users" table based on "user_id" field in the "scheduled_notifications" table. (The same argument applies for "notifications" table and a few other tables). "template_id" can be used for this purpose as well.
  2. "scheduled_notifications" table only contains "template_id". It doesn't have the necessary information to construct the actual message based on the template.
  3. "user_preferences" table has "language_preference". But it's not utilized anywhere. Though we might have indicated it in the "Additional Features" section, it would be appropriate to omit this in the schema if this is a feature we are not providing.
  4. Recommend adding a version information in "notification_templates" schema to allow easier correlation of a message and the exact template it was generated from.

0

0

Comments
Comments