"用户首选项"数据库表设计

NSX*_*NSX 5 database asp.net database-design sql-server-2005

我正在寻找为用户偏好创建一个表,并无法找到最佳方法.ASP.NET默认使用它的方式似乎非常尴尬,并且希望避免这种情况.目前,我每个用户使用一行,其中每个用户首​​选项都有一个不同的列(我知道没有标准化).

所以,我想出的另一个想法是将首选项本身拆分为自己的表,然后在用户首选项表中有一个PER优先级PER用户; 但是,这意味着每个首选项都需要是完全相同的数据类型,这对我来说也听起来不太吸引人.

所以,我的问题是:设计数据库以保存用户偏好值的最佳/最合理的方法是什么?

Gre*_*egD 4

我在数据库工作中试图避免的一些想法是数据重复和不必要的复杂化。您还希望避免“插入、更新和删除异常”。话虽如此,将用户首选项存储在一个表中,每一行 = 一个用户,每列代表可用的不同首选项,这是有意义的。

现在,如果您可以看到这些首选项在数据库中以任何其他形式或方式使用,例如多个对象(不仅仅是用户)使用相同的首选项,那么您将需要沿着第二条路线并使用 FK/ 引用首选项PK对。

至于你所描述的,我认为第一条路线没有理由不起作用。