我想为UserPreferences创建一个表。每个用户都有一组有限的用户首选项。因此,可以通过两种方式对此进行建模:
速度因素并不重要,因为它们将在应用程序启动时被检索一次。
1的优缺点:
2的优点/缺点:
我在上面是否缺少任何优点或缺点?
在我看来,在理想的解决方案上看这是将数据存储为UserPreferenceByCode,然后返回一组透视数据,以便它在客户端上显示为UserPreferenceByUser。
答案 0 :(得分:3)
您肯定缺少一些注意事项,并且有一些错误。
但是,添加新用户时,没有默认的首选项。
这是不正确的。默认首选项不像default
约束那样简单,但是可以使用触发器,带有default
表达式的case
或更常见的“默认”用户来添加。实际上,这是一个优势,因为默认值可能会根据用户的其他特征(例如语言或角色)而有所不同。
您还缺少一些重要的注意事项:
最后两个注意事项-以及轻松添加新首选项的功能-在决定使用哪种方法时通常很重要。
在某些情况下,我使用了混合方法,其中初始首选项存储在列中,其他首选项存储在单独的表中,甚至存储在JSON / XML列中。