将表条目链接到多个其他条目

时间:2016-08-11 23:07:58

标签: sql database-design foreign-keys

我正在尝试为学校项目创建一个基本的音乐数据库。 我想将每首歌曲与三(3)首其他“类似”歌曲联系起来。

我知道如何将两个表与FOREIGN KEY链接在一起,但我不确定如何链接同一个表中的两个表。

我正在使用的程序是PHPmyadmin和DBDesigner 4.

提前感谢您的任何帮助:)

2 个答案:

答案 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保持在一起。

示例:

  • 桌上歌曲 - ID PRIMARY KEY,NAME
  • 表格Song_Link - ID_SONG(来自表格歌曲),ID_LINKED_SONG(来自表格歌曲)

这样您就可以连续存储两首歌曲之间的链接。

考虑到链接是双向的。