标记系统和评分系统

时间:2012-12-19 03:08:25

标签: mysql database database-design database-schema tagging

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

我将有一个user表及其website表。

用户表将具有用户ID,电子邮件,密码等的基础知识 网站表将包含id,user_id,关键字和分数。

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

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

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

2 个答案:

答案 0 :(得分:1)

如果您只有分数,最好将其添加到网站表中。在大多数情况下,制作单独的表会使事情变得复杂,同时提供的优势很少。但是,在某些情况下,您可能需要创建一个单独的表:

  • 你有很多很多网站,其中只有一些有分数。您不必为大多数网站存储NULL分数,而是添加一个单独的表,该表仅存储具有它们的网站的分数。
  • 网站和分数没有一对一的关系,或者该关系本身具有属性(在您的方案中不太可能)。
  • 您已经有很多网站,现在正在添加分数功能。您可能不想更改数据库架构,因为在部署新版本的应用程序时需要很长时间。您可以添加新表,而不是更改可能需要很长时间的网站表。

答案 1 :(得分:0)

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