我的应用程序具有可属于组的用户的通知设置。组管理员可以为整个组定义设置,以便在任何用户执行操作时通知管理员。管理员还可以为单个用户定义设置,这将覆盖组设置。
现在我有一个包含列的数据库:group_id, action1, action2, action3, ...
. 这些操作是布尔值,用于确定管理员在其组中的用户执行该操作时是否收到通知。
我可以创建一个由 User 模型而不是 Group 模型拥有的单独表,但是将完全相同的数据存储在一个完全独立的表中感觉效率很低,除非group_id
将user_id
.
另一种选择是添加user_id
到我已经拥有的表中,并允许group_id
. 在确定用户的通知设置时,应用程序将首先根据用户选择设置,然后回退到group_id
不为空的设置。这感觉效率很低,因为数据库中会有很多空值,但它肯定需要我做的工作更少。
对于这种情况,有没有比我描述的两种更有效的设计?