如何避免mysql表中的重复内容?

时间:2014-06-23 16:35:48

标签: mysql database database-schema

我有两张桌子,他们有#34;多对多"关系。问题是在镜像表中我还有2个字段" name"和"状态"。对于名称字段值将是" Youtube,DailyMotion和Mp4Upload"对于状态值将是" Subbed,Dubbed和Raw"。对于我放置这些值的每个链接,都会发生重复。

演示:

镜像表

id name       link          status
1  Mp4Upload  Some link 1   Subbed
2  Mp4Upload  Some link 2   Subbed
3  Mp4Upload  Some link 3   Subbed
4  Mp4Upload  Some link 4   Raw
5  Mp4Upload  Some link 5   Raw
6  YouTube    Some link 6   Dubbed
7  YouTube    Some link 7   Dubbed

有什么方法可以通过某种关系避免重复内容?喜欢考虑上述关系。一集有很多镜子,很多镜子属于一集。我们使用第三个表数据透视表episode_mirror解决了这个问题。

其他表格

剧集表

id   name          
1   First Episode
2   Second Episode
3   Third Episode
4   Fourth Episode

episode_mirror(数据透视表)

id episode_id mirror_id
1  1          1
2  1          2
3  1          3

我希望这对每个人都有意义并且非常感谢。

1 个答案:

答案 0 :(得分:0)

为名称和状态创建一个表。

status_id | status
1 | subbed
2 | dubbed
3 | raw

name_id | name
1 | mp4upload
2 | youtube
3 | dailymotion

然后在第一个表中,使用与这些新表对应的ID

id name_id       link          status_id
1  1             Some link 1   1
2  1             Some link 2   1
3  1             Some link 3   1
4  1             Some link 4   3
5  1             Some link 5   3
6  2             Some link 6   2
7  2             Some link 7   2

这将为您节省大量空间和重复字符串的重复。