有三个表:
CREATE TABLE T1_HUMAN (
Id int IDENTITY PRIMARY KEY,
[Name] varchar(max) NOT NULL,
Surname varchar(max) NOT NULL,
TypePhone <???>,
PhoneNumber <???>
)
CREATE TABLE T2_PHONE (
Id int IDENTITY PRIMARY KEY,
TypePhone varchar(max) NOT NULL,
PhoneNumber char(12) NOT NULL UNIQUE,
[Name] <???>,
Surname <???>
)
CREATE TABLE T3 (
T1_PhoneNumber int NOT NULL FOREIGN KEY REFERENCES T1_HUMAN(Id),
T2_PhoneNumber int NOT NULL FOREIGN KEY REFERENCES T2_PHONE(Id),
PRIMARY KEY(T1_PhoneNumber, T2_PhoneNumber)
)
如您所见,这种关系是多对多的-一个人可以拥有多个电话,一个电话号码可以使用多个人。
我需要以下内容:
如果多个人使用了特定的电话号码(T2_PHONE.Id), 此数据(名称,姓氏)应显示在适当的位置 T2_PHONE表的字段。
如果一个特定的人(T1_HUMAN.Id)使用多个电话号码,则此 数据(TypePhone,PhoneNumber)需要显示在 T1_HUMAN表的适当字段。
如何更改表格以满足上述要求?
答案 0 :(得分:1)
表的结构很好。
您要的内容很奇怪,而且不清楚。例如,如果一个人使用2部电话,您将有2对(键入电话,电话号码):您不能将它们放在一行中。
我怀疑您需要逗号分隔的值,还是需要多个字段。在这种情况下,请 NOT 更改表的当前正确结构,并违反第一种规范形式。相反,如果您必须能够看到这些数据,请创建依赖于这些表的视图。
如果您明确想要什么,我们将很乐意提供答案。例如,如果A和B的人共享phone1和phone2,您希望查询如何显示?