我經歷一個艱難的決定(至少對我來說)...我應該在數據庫或應用程序級別填寫國家/地區名稱嗎?
我的網站將在下拉列表中,並根據所選國家的城市名單的國家的名單。我決定在分貝水平填充列表爲:
CREATE TABLE Country
(
countryID - PK
countryName - FK
);
CREATE TABLE City
(
cityID - PK
countryID - FK
cityName
);
CREATE TABLE Register
(
registerID - PK
cityID - FK
)
然而,這會增加一些後端PHP複雜插入記錄時到註冊以及檢索來自國家/城市的記錄編碼,因爲登記表用戶將在下拉列表中顯示城市名稱,用戶將看不到cityID,因此我將不得不根據所選城市名稱獲取cityID等。因此,我說爲什麼我只將應用級別的國家和城市列表放在固定的下拉列表中並使註冊表看起來如下:
CREATE TABLE Register
(
registerID - PK
cityName
)
cityName無需我們直接插入或者調用多個表並獲得特定ID的城市,所以我們就可以抓住的cityName,等等
我只會在關鍵的表,如使會員和郵政/線程表之間的關係正常化。一個成員可以有多個線程的一對多關係。否則,爲了簡單和說唱的緣故,與多值作爲國家列表相關的事物將不會在數據庫級別考慮。
你覺得呢?意見...