我創建一個系統來存儲用戶統計數據如下:MySQL的搜索查詢
Table Stats =========== id name ----------- 1 height 2 weight 3 eye_colour 4 etc...
Table Stat_Options ================== id stat_id name 1 1 170cm 2 1 172cm 3 1 174cm 4 2 60kg 5 2 65kg
我存儲在用戶表中stat_options的ID如下:
Table User_Stats ================ id user_id height weight eye_colour etc... --------------------------------------------------------- 1 10 3 5 7
存儲Id的原因是stat_option的'name'可以隨時更改,用戶記錄也不需要更改。
但看着這個我認爲它可能會出現問題,尤其是在搜索時。例如,如果我想搜索兩個特定高度之間的所有用戶?想到的一個解決方案是在Stat_Options表中插入一個'value'字段,但我仍然不確定這是否可行。有什麼建議麼?
`SELECT ... FROM STAT_OPTIONS WHERE stat_id = 1 AND name BETWEEN x AND y` - 這有什麼困難?如果您需要根據名稱值獲取stat_id,則加入STATS表... – 2010-12-09 22:12:05