什麼是在MySQL中存儲選項的最佳方式?作爲與每個字符串關聯的描述性字符串或整數。將選項存儲爲描述性字符串或數字?
比方說,我有這樣的疑問在我的UI:
什麼是你最喜歡的冰淇淋口味?
- 香草
- 巧克力
- 草莓
是更好地存儲那些在DB爲1,2,3中的INT(1)字段或作爲字符串香草,巧克力,或草莓,在CHAR領域?我知道INT字段會更快,但是除非有成千上萬的行,否則可能不會很劇烈。
如果他們存儲爲字符串,然後我不需要做任何額外的PHP代碼,而如果他們存儲爲數字,我必須確定1 =香草的價值,等等。
這是什麼普遍的共識?
您的行中至少應有一列作爲主鍵/索引運行,可能會自動增量。這是一種很好的做法,因爲它允許您通過引用ID號來編輯任何其他字段。否則,如果你想改變「Vanilla」,你將不得不直接編輯你的MySQL數據庫。 (好吧,不完全是,但你知道我的意思,這可以讓你唯一標識行。) – Jason
@Jason,我有一個主要列,但是這與此無關。我只是問什麼是存儲數據的首選方法。 – zen
EAV結構會讓你做這兩件事,但這比你看起來需要的複雜得多。在確定使用什麼方法時,問問自己以後需要做些什麼來改變它。如果你使用INT來存儲它,你必須改變你的代碼來添加標籤,如果你添加一個新的味道。爲了簡單起見,我已經使用了字符串,因爲你已經有了一個主鍵。 – Jason