数据库表之间的哪种关系是正确的?

时间:2013-01-22 00:49:34

标签: mysql database

我们有一个数据库,它保存有关音乐的信息 - 我们有例如艺术家,乐队,歌曲,专辑等的表格。下一步是允许用户使用10分评分等级对这些内容进行评分。

记住所有用户评分的最佳方法是什么?当然我可以创建包含user_id,rating_value和rated_thing_element的简单表,但显然我无法将它加入到每个表中。

最好是创建一个名为ratings的表和几个额外的表,例如ratings_albums,ratings_songs,ratings_bands等来绑定,或者每个表只有几个ratingsXXX表。我上面提到的元素?

我不确定我应该走哪条路......或者它真的很重要。=?

1 个答案:

答案 0 :(得分:0)

我个人的偏好是使用标准化表格和严格的外国参考。所以我会使用artist_ratings,album_ratings和song_ratings表。为了使查询更容易,我将创建视图来表示最常连接的表。

您可以使用没有外键的评级表(除了用户参考之外),但是您失去了参照完整性。这个表是

ratings {
  id integer,
  userId integer, -- FK to users table
  referenceId integer, -- This is not a FK, but will contain the ID of the artist/album/song
  type char, -- a = album, A = artist, s = song
  rating int
}
相关问题