2013-10-09 51 views
1

我得到了一个表(姓名),我在这里保存姓名和一个表格(anrede)用于称呼。 现在,如果人们设置了一个新的联系人名称,可以设置例如:John(作为姓),Doe(姓)和Mr.(作为称呼),因此我得到了“John Doe先生”的数据。 names table salutation table用两个数据(外键)填充数据库字段

现在我得到了多个学术成绩的问题。 例如,在德语中,他可以是“Dr. John Doe”(如果他是医生)或“John Doe博士”(如果他有医生和教授职系)。

我在“anrede”表中保存了所有salutaions,但我不想保存“Dr.,Prof. and Prof. Dr.”但只有博士和教授

称呼作为外键(anrede_id)保存在“名称”表中。

那么有没有可能在那里保存多个数据集?

+0

这听起来像你有一个M:N名和anrede之间(许多一对多)的关系。您需要创建另一个关联这两个字段的表。 (你是否试图在名称表中保存anrede ID的列表?如果是这样,我不会建议这样做。) – AgRizzo

回答

1

您可以创建像AgRizzo建议的第三个表格。它可能看起来像:

Link_name_anrede
名_ID
anrede_id

对于每一个新的称呼一个人,你会一个记录添加到Link_name_anrede表。

然后拿到问候列表的人有使用以下查询

SELECT salutation 
FROM anrede 
    INNER JOIN Link_name_anrede ON anrede.ID = Link_name_anrede.anrede_id 
WHERE name_id = 3 
+0

首先感谢回答,抱歉我的迟到回复。只是为了恢复:所以如果“john doe”有两个称呼(例如Dr. Prof.),我必须在Link_name_anrede中创建2条记录,所以会有类似name_id 3 | anrede_id 1和name_id 3 | anrede_id2? 对不起,我从来没有与m:n的关系 – PoscheL

+0

我必须为查找表或其他定义外部?像: 'ALTER TABLE Link_name_anrede 添加外键(名_ID) 参考名称(ID)' 或 'ALTER TABLE名 添加外键(Link_name_anrede_id) 参考Link_name_anrede(ID)' – PoscheL

+0

是的,我肯定会将'name_id'和'anrede_id'定义为外键 – Linger