讓主鍵說,我有兩個表,用戶和語言在多對多表
user (Table Name)
-----------------
user_id (PK)
user_name
mobile
...
....
language (Table Name)
---------------------
lang_code (PK)
lang_name
...
....
的問題是,如果我想增加用戶和語言表(多對多)之間的關係,這是一個正確的方法 ?
solution 1
user_language (Table Name)
--------------------------
user_id (FK)
lang_code (FK)
or solution 2
user_language (Table Name)
--------------------------
user_id (PK)
lang_code (PK)
or solution 3
user_language (Table Name)
--------------------------
user_lang_id (PK)
user_id (FK)
lang_code (FK)
我看到很多人在多桌上添加主鍵,但我認爲這並不重要,並且浪費空間。所以哪個是對的?
BTW我使用PostgreSQL的
複合主鍵(user_id,lang_code),兩者都是外鍵。 – Esailija
考慮一下我在昨天發佈在[這個相關答案](http://stackoverflow.com/a/13259085/939860)中的n:m關係的完整代碼示例。這就是你通常這樣做的方式。 –