建立外鍵時,主表、從表難以確定?
案例描述:
現有3張表:
A羣體用戶表
B個人用戶表
C用戶訂單表
3張表中都有userid字段,A表和B表保存的是用戶信息(用戶類別不同),C表中保存的是業務信息。A表和B表的userid不會重複,C表中的userid取自A表或B表。3個表中的數據量都很大。
怎樣爲這3張表建立合適的外鍵關聯?
思路一:
C表爲父表,A表和B表做子表:會出現沒有業務就沒有用戶的邏輯錯誤。
思路二:
c表分別建立a、b表的外鍵c.id1,c.id2:可以,但是c表改動較大
思路三:
再創建一個表,如d表,裏面存放a、b表的id值,在c表上創建d表的外鍵:正解
附:能夠唯一標識一條記錄的屬性列(組)就是該表的主鍵。主鍵是唯一的,且必須非空。而外鍵是另外一張表中與主表的某個字段的類型、字段名相同的字段(關聯字段),外鍵的作用是關聯兩張或者兩個以上表,保持數據一致性、完整性。只要主表上的關聯字段是唯一或者主鍵,均可以被外鍵引用,但須注意的是外鍵不能是複合鍵。