我有一個utf8中的國家和城市名稱列表。當任一列表被提取時,它應該以它輸入的相同順序返回。非數字字段作爲PK - 數據庫設計問題
例如:
Country(country_name|PK)
City(city_name|PK, country_name|FK)
COUNTRY_NAME和CITY_NAME不會改變,固定值。但是,排序會是一個問題。爲了確保我保留作爲
Country:
UK
US
Africa
我添加了一個名爲1和高達sortcountry這將數值新列輸入的順序值。
Country(country_name|PK, sortcountry)
同樣的東西適用於城市表。
我覺得這是比country(country_id, countryname)
一個更好的解決方案。我做對了嗎?
依靠磁盤上的PK順序存儲MySQL條目是不安全的。選擇和訂購幾百行產品通常不會導致問題。我會邏輯地構造數據(即使用country_id作爲PK和單獨的排序列)。可能會有更大的性能問題需要在應用程序的其他地方進行優化。 – liquorvicar 2012-03-19 07:24:44
我試圖避免不必要的內部連接。通過做我剛剛做的事情,我可以在不需要加入的情況下爲每個查詢獲取城市列表。另一種選擇是什麼?爲sortcountry分配PK,然後在sortcountry(FK)旁邊添加countryname?這是一個好的替代解決方案嗎?注意:假定sortcountry代表country_id – user311509 2012-03-19 11:25:07