2

我想跟踪关键字并在我的数据库中为每个用户建立一个评分系统。

我要一张user桌子和他们的website桌子。

用户表将包含基本的用户 ID、电子邮件、密码等网站表将包含 id、user_id、关键字和分数。

因此,我会将他们所有的关键字(最多 5 个关键字)保存在实施 MySQLicious 标记解决方案的网站表中。

我的问题是,我会不断更新分数,所以我应该在网站表中保留“分数”字段还是创建一个全新的表并根据网站的 id 字段链接所有分数?

编辑:我还应该将关键字保留在同一个表中还是将它们分开?

4

2 回答 2

1

如果您只有一个分数,最好将其添加到网站表中。在大多数情况下,制作一个单独的表格会使事情变得复杂,而且几乎没有什么优势。但是,在某些情况下,您可能需要创建一个单独的表:

  • 您有许多网站,但其中只有一些有分数。您无需为大多数网站存储 NULL 分数,而是添加一个单独的表,该表仅存储拥有它们的网站的分数。
  • 网站和分数没有一对一的关系,或者该关系本身具有属性(在您的场景中不太可能)。
  • 您已经有很多网站,现在正在添加评分功能。您可能不想更改数据库架构,因为在部署新版本的应用程序时这需要很长时间。您无需更改可能需要很长时间的网站表,而是添加一个新表。
于 2012-12-19T08:16:56.860 回答
0

只需将分数保持在同一张表中即可。如果将其保存在单独的表中,则没有任何好处。如果要更新,可以直接用新分数更新表,如果将这些表分开,除了一些外键负担外,没有其他好处。

于 2012-12-19T04:55:45.710 回答