我对SQL很陌生,我正试图建立一些关系并遇到以下问题。
我有3张桌子 - 人 - 电话号码 - PhoneNumberCategories
我认为人和电话号码是不言自明的,而我用来表示电话号码是用于办公室,家庭,移动电话,传真等。
现在我制作了第4张表,以实现这种多对多的关系。该表有4列:
我在这里建立了3个关系。除ID列之外的所有列都有一个。它似乎有用,但它只是给我一种奇怪的感觉。有人可以告诉我,如果我是在正确的轨道上,或者我是否对此完全错了。
我想要的原因如下。当然,我需要将一个人与电话号码联系起来。但是,我可能有一个电话号码是一般办公室(这将是行'OfficeGeneral')号码,因此我链接到我,因为我在那里工作。我还有一个直接的办公室(这将是'OfficeDirect'行)号码。这当然也与我有关。然而,一般数字与办公室中的所有人都是“OfficeGeneral”。除了接待员,这里它将链接为“OfficeDirect”。这就是我提出这种多对多关系的原因。我在网上找不到太多关于它的东西。这就足以怀疑这是否是正确的方法。无论如何,这只是一个例子。我想确保我很灵活,并且可以捕获尽可能多的例外情况。我相信一旦数据库正在使用,人们就会遇到我没有预料到的情况。人们擅长多年来我学到的东西。
对以下评论的回应澄清:
期待收到大家的回复。
答案 0 :(得分:1)
你的模特看起来很好。或许你的描述不是。
Person
和PhoneNumber
有很多关系。反过来,这种关系与PhoneNumberCategory
是1-many,除非给定的电话号码可以在多个类别中。
我希望Person
/ PhoneNumber
在此表中声明为唯一,因此一个人只能使用一次特定的电话号码。但是,这可能不是您查看结构的方式。