比方說,我有一個表有report_type
列,我只有2種報告類型。用它們創建一個report_types
表是否值得它,然後用一個外鍵引用它到這個表中?或者是否可以將報告類型作爲字符串存儲在該列中?我應該如何嚴格地創建一個單獨的關聯表?
0
A
回答
1
需要考慮的事情:
- ,你可能會在將來添加新的報告類型?
- 您是否可能擁有其他也引用報告類型的表格(例如用於統計信息收集或審計)?
- 是否可能在其他上下文中使用這些值(例如GUI下拉小部件)?
- 您是否需要將附加數據(例如長描述)與報告類型關聯?
我知道這似乎有點像矯枉過正現在建立一個表,只保存兩行。坦率地說,如果你決定堅持使用列和檢查約束,Yagni的衆神會支持你。但是,如果您已經有一堆代碼查找表來執行受限制的值集合,那麼在一致性中也有價值。
0
這是如果你曾經計劃擴大的道路。我認爲真正的問題是,是否不值得製作額外的桌子?
2
只要有可能,您應該始終計劃規範化您的數據庫並抽象出您的代碼。然而,你做的越多,你就會在系統中獲得更多的「間接」。更好的問題是,在將表格的工作量與重新設計代碼的成本相比較時,會產生多少開銷。
在這種情況下,我幾乎可以肯定地說,值得您花時間規範化數據庫。
0
我通常會建議標準化您的數據,但這似乎是一個足夠簡單的情況,您可能不會從中看到太多好處。正如你所說,你只是使用該字段進行過濾,因此只需要使用數據本身中存在的值。
如果您希望用戶看到某個特定報告類型的記錄爲零,那麼您需要使用關聯的表。
0
相關問題
- 1. 我應該爲每個類別創建單獨的表嗎?
- 2. 我應該爲此創建一個單獨的類嗎?
- 3. 我應該在什麼時候創建一個單獨的表(mysql)?
- 4. 我應該爲密碼和用戶名創建一個單獨的表嗎?
- 5. 我是否需要爲has_many:through關聯創建一個關聯表?
- 6. 我應該創建另一個表嗎?
- 7. 我該如何創建一個這樣的表單?
- 8. 我該如何爲HTML表單創建一個JavaScript對象
- 9. 設計表格創建belongs_to的關聯
- 10. 創建一個php聯繫表格
- 11. 如何創建獨特的html表格?
- 12. 如何爲我的tableviewcell圖像單獨創建一個動畫?
- 13. 我應該創建單獨的SQL Server數據庫嗎?
- 14. sails.js創建爲單向關聯的一對一關聯
- 15. 我應該如何建模類之間的關聯
- 16. 我應該如何創建我的GUID?
- 17. QT創建我的表單對象,如何訪問該表單?
- 18. 爲了表格的緣故,我應該創建一個非索引表嗎?
- 19. 我應該如何在iOS中動態創建表單?
- 20. FactoryGirl如何創建一個由關聯創建回調
- 21. 我應該在類中創建單獨的屬性還是僅創建一個設置值的方法?
- 22. 創建一個從表單輸入多維關聯數組
- 23. 如何創建一個many_to_many關聯和德國表名
- 24. SQL表格設計:我應該將訂單地址存儲在單獨的表格中嗎?
- 25. 我應該如何理想地創建一個結構良好的UITableViewDataSource?
- 26. 我該如何做一個Upsert表格?
- 27. 表設計問題 - 我應該創建單獨的字段或存儲爲blob
- 28. 我應該爲我的網站管理員創建一個單獨的應用程序嗎?
- 29. 如何在同一個表單中創建兩個單獨的隨機數字?
- 30. 我應該在本地創建一個大型數組嗎?
什麼是你的價值做領域後檢索它? – 2010-08-04 01:36:43
@Joe:沒什麼,它只是用於過濾目的。 – ryeguy 2010-08-04 01:38:58