如果我有2個帳戶表:儲蓄帳戶和透支帳戶,然後我有表格交易,其中「from_account」列的值只能等於存儲帳戶ID或透支賬戶ID,我應該如何設置外鍵約束?是否有更好的模式設計,因爲透支賬戶ID可能會相互衝突。 即時通訊使用MySQL btw :) ThanxMySQL:1列是指2個不同的表格
1
A
回答
1
更好的模式設計將是在交易表中有兩個不同的列:一個引用保存帳戶表和另一個引用透支帳戶表。當然,這些列應該是可空的,只有其中的一列將指向其他表中的實際行。但是通過這種設計,您可以執行參照完整性約束。
另一種選擇是將兩個帳戶表合併爲一個,特別是如果他們有許多相似的列。
0
您可以定義一個附加列ACCOUNT_TYPE
並設置一個UNIQUE CONSTRAINT
,合併FROM_ACCOUNT
和ACCOUNT_TYPE
列。您還可以將CHECK CONSTRAINT
添加到ACCOUNT_TYPE
,以將其值限制爲1,2。
或者您爲每個引用的表格添加一列,並加上CHECK CONSTRAINT
以確保您永遠不會同時填充兩個表格。
最後,考慮合併兩個帳戶表,如果它們之間沒有太大差異。
相關問題
- 1. mysql:連接2個表格與2個不同的字段
- 2. 選擇所選的2列是來自表格的1列,但條件不同
- 3. 1個表中的2個不同的AVG列與選擇
- 4. MySQL查詢2中的表格1
- 5. 比較不同表中的2列mysql
- 6. MySQL在另一個表中檢索2個不同列的同一列表
- 7. 加入2不同列的表格
- 8. 合併2個不同類型的列表爲1
- 9. MySQL ORDER BY不同的表格列,但
- 10. PHP/MySQL - 比較來自2個不同數據庫的表格
- 11. 加入2列1個表
- 12. 乘以2個不同表格的值
- 13. MYSQL +選擇2列 - 1是唯一
- 14. MySQL從2個不同的表和列創建視圖
- 15. HTML中有2列的表格;第一列是7行,第二列是1行
- 16. MySQL:從2個不同的表中選擇不同的?
- 17. MySQL/PHP加入表格並不總是有共同的列
- 18. 2表格1內的HTML表格
- 19. MySQL - 從一個表格到2列的2個總和和2個WHERE語句
- 20. SQL從2個不同的表格中選擇1個進行優化搜索
- 21. Excel - 從2個不同標題的電子表格創建1個透視圖
- 22. 比較來自2個不同表格的匹配列數據
- 23. 查找具有值1和2但不是3的相同表格中的值
- 24. MySQL是截斷炭(2)列中的值1個字符
- 25. 不同表中的SQL 2列不同
- 26. 1行與2個不同類的玉?
- 27. 將1列加入2個表格之一的更好方法?
- 28. MySql同一表的兩個不同列的不同值
- 29. MYSQL最大(列),其中2個表有相同的列
- 30. 個性化的表1行2列