【发布时间】:2011-12-08 11:45:42
【问题描述】:
我有一个用户表来控制对网站的访问。我们目前有几百个用户,最终可能会增长到几千个。我们要求允许“临时”用户进入。这些临时用户将拥有一个超时的令牌,永远不会再次使用。这些代币的数量可能会大大超过普通用户。我的问题是这些临时用户应该存储在通用表中还是他们自己的表中。
我的倾向是与用户 ID 在其他地方用作外键相同的表,并且对于临时用户仍然有用。 id 的唯一性很重要。但是,我不高兴用户表将充满许多不再需要使用的记录,因此会减慢表的速度。
我考虑过的另一个选项是创建用户记录,捕获 id,删除记录,然后在另一个表中使用 id。因此,我保留了 id 的唯一性,但减少了表格的膨胀。我不介意外键是否引用不同的表。
有人遇到过类似的问题,有什么想法吗?
【问题讨论】:
-
你可能还想在dba.stackexchange.com上问这个问题
-
如果它们执行相同的数据库功能,我会将它们放在同一个地方。关于膨胀,是否可以在令牌过期后(或几周/几个月/几年后或您是否需要保留其数据?)简单地清除记录,或者添加一个状态列“非活动”,索引并始终按它过滤。由于非临时用户离开删除也增加了价值。
-
我也可能会询问 dba,但您让我放心,我没有遗漏一些明显的东西。只是感觉有点不对劲(现在仍然如此),但我找不到实质性的技术论据。谢谢。