我最近在空餘時間開始做自由PHP + MySQL開發,以補充我從C#/ SQL Server代碼編寫的全職工作中獲得的收入。我注意到的一個與數據庫相關的重大差異之一是MySQL有一個枚舉數據類型,而SQL Server則沒有。這是MySQL枚舉數據類型的適當使用嗎?
當我注意到enum數據類型時,我立即決定壓扁我的數據模型,以支持使用枚舉的大表,而不是使用許多較小的表來表示離散實體和一個大的「橋」類表。
我目前正在使用的網站是用於唱片公司的。我只有一張表來存儲標籤的發行版,即「發行版」表。我通常在任何地方都使用枚舉,我通常會將外鍵用於單獨的表格 - 藝術家名稱,標籤名稱和其他幾個。用戶可以通過後端編輯這些枚舉列。我所看到的使用文本字段進行枚舉的主要優點是藝術家名稱將被重用,這將改善數據完整性。我也看到了在數據庫中擁有較少表的優勢。順便說一下,我還有一個額外的表格和一個橋接表格 - 有一個「標籤」功能可以爲特定版本添加標籤,並且由於這是一種多對多的關係,所以我覺得離散標籤表和表橋加入標籤的版本是合適的
有從未遇到之前數據庫中的數據類型ENUM,我不知道如果我作出明智地使用這項功能,或者是否有問題我沒有預見作爲這種數據架構的結果,可能會回來咬我。有經驗的MySQL'ers,你覺得怎麼樣?
你可以發表一些代碼,所以我可以在http://thedailywtf.com上提交嗎? – 2011-03-18 02:39:38
恐怕我不符合thedailywtf的資格,因爲這是我的第一個php/mysql網絡應用程序,並且dailywtf試圖讓初學者很好。我會承認,我很榮幸能夠在該網站上! – SuperNES 2011-03-18 13:24:17
但你是一個經驗豐富的C#/ SQL服務器編碼器 - 跆拳道! – 2011-03-18 14:49:48