2011-01-09 45 views
0

我經歷一個艱難的決定(至少對我來說)...我應該在數據庫或應用程序級別填寫國家/地區名稱嗎?

我的網站將在下拉列表中,並根據所選國家的城市名單的國家的名單。我決定在分貝水平填充列表爲:

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,等等

我只會在關鍵的表,如使會員和郵政/線程表之間的關係正常化。一個成員可以有多個線程的一對多關係。否則,爲了簡單和說唱的緣故,與多值作爲國家列表相關的事物將不會在數據庫級別考慮。

你覺得呢?意見...

回答

1

數據的性質應該驅動數據庫模型。不是你的前端問題。

爲什麼不把你的城市加載到下拉列表中?設置顯示文本= cityName。設置值= cityID。

0

我建議定義與國名/ ID作爲元素和城市名稱的子元素XML。它使它編輯/讀取xml數據。我不確定你是否想要考慮這一點。

1

不知道我完全理解你的問題的文本,但回答你的問題的標題,我會保持國名在數據庫中。國家/城市不時會改變他們的名字。

相關問題