2013-10-09 50 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