不清楚外键和主键

时间:2012-10-17 09:52:36

标签: sql database-design

我现在很困惑,也许你可以帮助我更好地理解这个问题。

有两个表程序和模块,

程序可以有许多模块,同一模块可能在许多程序中,

您如何识别主键和外键?因为没有单一属性是唯一的,因为programme_id可能出现n次,因为同一程序中有不同的模块,module_id也会出现多次,因为它存在于许多程序中。

2 个答案:

答案 0 :(得分:2)

程序将以programmeID为主键

模块将以moduleID为主键

然后会有第三个表格 - 比如ModuleProgrammes - 其中moduleIdprogrammeID作为外键。

ModuleProgrammes可能有moduleidprogrammeid作为主键,或者它可能有moduleprogrammeid作为主键。

有关详细信息,请参阅http://en.wikipedia.org/wiki/Junction_table

答案 1 :(得分:0)

只是为了更好地设计数据库。只需用户另一个表,并在新表中提供Programs表和Modules表的每个主键的引用作为foriegn键,这将减少数据冗余并绑定表。