回答
它不是有多少選項,而是什麼樣的rel(1:1; 1:n等)。
在這種特殊情況下,我不會使用外鍵,只是將它留作列。
此外,正如Marc_S在其評論中所建議的那樣,添加CHECK約束以確保僅輸入這兩個值中的一個。
ALTER TABLE your_table
ADD CONSTRAINT chk_balanceimpact CHECK (balanceimpact in ('C','D'))
GO
如果你只有兩個選擇,似乎更好的解決方案將只是有一個真/假的列。除非它映射到其他表格。
這句名言「只會有兩個選項」
不拆分頭髮20點的方式,但是,我有一個稍微不同的方式看到了這個時候。我說創建一個fk查找表。只是因爲當他們想要添加第3,第4和..選項時,您將擁有所有的結構。很明顯,在這種情況下,你可以採取任何一種方式並保持良好狀態,但我不明白爲什麼將它預先標準化以避免將來發生重複工作,即使有一點小小的機會。就在深夜我的頭頂2秒。
使用C,D方法可以將其更改爲稍後使用char(1)FK進行查找。 – gbn
這就是我的觀點,以後爲什麼必須將其更改爲查找,現在就可以做到。對我來說這意味着正確的方法是使用查找表開始。即使這種變化在實踐中很容易實現,但整個變化的總和可能不會。我可以想到的幾個例子之一......如果他們有5萬億條C和D記錄,並且必須運行C和D上的更新以使其在所有這些記錄中成爲1和2,那麼它可能會產生更大的影響那看起來是什麼。 – Kuberchaun
爲什麼它是着名的詞? :)在會計只有信用和債務:) – 001
- 1. 外鍵的多條記錄
- 2. SQL,只有匹配所有外鍵值才能返回記錄?
- 3. Django - 使用外鍵關係同時保存兩條記錄
- 4. 使用外鍵複製多個記錄
- 5. 使用Doctrine記錄設置外鍵
- 6. 使用新外鍵添加記錄
- 7. 記錄集只返回1000條記錄
- 8. 表具有多條記錄,其中mobileNumber列只有幾條記錄。我只需要獲取這些記錄
- 9. Java DirContext sreach只有幾條記錄
- 10. 只有1條記錄正在插入
- 11. 只有一條記錄顯示
- 12. 雄辯'with()'只有1條記錄?
- 13. 多條線路上的一條記錄,只有RID第一條記錄
- 14. 如果只有一條記錄存在,使用QSqlite無法獲取記錄
- 15. 使用php在mysql中列出記錄,但只有一條記錄出現?
- 16. 如何使用ActiveRecord獲取有2條記錄的記錄列表?
- 17. 只選擇一條記錄
- 18. 檢索所有外鍵及其記錄
- 19. 遞歸只有2級記錄使用普通的sql
- 20. 使用代碼點火器更新只有一條記錄
- 21. 只有一條記錄才能使用datagridview嗎?
- 22. 只選一條記錄
- 23. 使用new_foo_path添加具有外鍵關係的新記錄(@bar)
- 24. SQL前2條記錄/值
- 25. 我在我的表中只有2條記錄,但它從數據庫中提取4條記錄
- 26. Rails添加外鍵記錄
- 27. Rails - 統計外鍵記錄
- 28. Laravel插入記錄(外鍵)
- 29. 有一個沒有定義主鍵的實體時,只有1條記錄
- 30. 我在數據庫中有2條記錄Vue輸出8條記錄
這實際上取決於情況。如果你正在談論一個簡單的數據庫,那麼可能不值得創建一個單獨的表。如果它更復雜一些,那麼您可能需要考慮一個表格,以便您可以將附加信息附加到「CREDIT」和「DEBIT」值。 –
如果實際上只有兩個值,那麼可以在列上使用CHECK約束。如果甚至存在遠程機會,則可能存在第三個,第四個選項 - 使其成爲普通查找表 –