我正在尝试为学校项目创建一个基本的音乐数据库。 我想将每首歌曲与三(3)首其他“类似”歌曲联系起来。
我知道如何将两个表与FOREIGN KEY
链接在一起,但我不确定如何链接同一个表中的两个表。
我正在使用的程序是PHPmyadmin和DBDesigner 4.
提前感谢您的任何帮助:)
答案 0 :(得分:1)
首先,在设计数据库时,你永远不想“假设'(3)'。”换句话说,你不需要“重复组”,这样如果你需要4,数据库设计就会被破坏。
对我而言,“is-similar-to”是一个多对多关系,它会列出任意数量的相似歌曲,其结构如
SONG_ID_1,
SONG_ID_2,
DEGREE_OF_SIMILARITY (some kind of percentage ...?)
所以,对于任何一首歌,你都会在这张桌子上找到所有曾被列为“类似于”这首歌的歌曲。您将此表与INNER JOIN
合并,并准备处理任意数量的匹配。
答案 1 :(得分:1)
您正在寻找一个关系表,您可以将歌曲ID与链接的歌曲ID保持在一起。
示例:
这样您就可以连续存储两首歌曲之间的链接。
考虑到链接是双向的。