0

我有两张桌子:

"sites" has_many "users" 
"users" belongs_to "sites"

每当将用户添加到站点时,我在站点表中添加名为users_count的列并将其递增一,这样会更好吗?还是对用户表进行条件计数是最好的方法?

4

1 回答 1

2

“更好”是一个主观术语。

但是,我会坚持这一点。数据库中不应该有两个相同信息的来源,因为它们可能会脱节。

确定有多少用户属于一个站点的最终方法是使用count对他们进行计数。

第三种范式要求每个非键属性都依赖于键、整个键,并且只依赖于键(帮助我,Codd)。

如果您向站点添加用户计数,这不仅取决于sites键值,还取决于其他表中的信息。

如果您了解其中的含义并减轻数据不一致的可能性(例如使用触发器),您可以从第三范式恢复性能,但绝大多数情况应保持 3NF。

于 2012-04-05T05:01:04.117 回答