我正在构建一个音乐应用程序。在我的数据库中,我有一个“艺术家”表,与“专辑”表相关,与“跟踪”表相关。
我的应用程序的每个用户都可以“喜欢”(竖起大拇指)或“不喜欢”(竖起大拇指)艺术家/专辑/曲目。因此,我必须使用参数“vote”在用户和艺术家/专辑/曲目之间创建多对多关系,可以设置为1 / -1。
我的问题是:创建三个“喜欢/不喜欢”表(user_artist_like,user_album_like,user_track_like)或只有一个表“user_like”有三列(artist_id,album_id, track_id)?知道我经常需要获取用户的所有喜欢。
答案 0 :(得分:2)
第一个选项更好,因为将数据放在一个表中意味着同一行中的数据点是相关的,这是不正确的。多个表允许您更轻松地管理数据,而不会被行混淆。例如,如何为单个表构造INSERT INTO语句?它无法有效利用空间。
答案 1 :(得分:0)
以防其他人阅读此内容,您可以设置一个包含type
列的表来处理此问题。
{
user_id: 7,
object_id: 12,
type: 'album',
is_liked: 1
}
{
user_id: 7,
object_id: 8,
type: 'track',
is_liked: 0 //this as 0 means disliked
}