2011-01-09 14 views
0

私は厳しい決断を下します。(少なくとも私のために)...DBまたはアプリケーションレベルで国/地域名を入力する必要がありますか?

私のウェブサイトには、ドロップダウンリストにある国のリストと選択した国に基づいた都市のリストがあります。私はとデシベルレベルでリストを作成することにしました:

CREATE TABLE Country 
(
    countryID - PK 
    countryName - FK 
); 


CREATE TABLE City 
(
    cityID - PK 
    countryID - FK 
    cityName 
); 

CREATE TABLE Register 
(
    registerID - PK 
    cityID - FK 

) 

ため、登録フォームに、登録にレコードを挿入するだけでなく、国/都市からレコードを検索するときしかし、これはPHPバックエンドのコードにいくつかの複雑さを追加することができますユーザーは都市名をdroplistに表示するので、ユーザーはcityIDが表示されません。したがって、選択したcityNameなどに基づいてcityIDを取得する必要があります。したがって、なぜ国や都市リストをアプリケーションレベルで固定ドロップダウンリストレジスタテーブルを次のように見てください。

CREATE TABLE Register 
(
    registerID - PK 
    cityName 
) 

cityNameは、私たちが参加したり、複数のテーブルを呼び出すことなく直接挿入されます。都市の特定のIDを取得してcityNameなどを取得できるようにします。

メンバーテーブルと投稿/スレッドテーブルの関係を作成するなどの重要なテーブルでのみ正規化します。メンバは、複数のスレッドに1対多の関係を持たせることができます。さもなければ、国のリストとして多価値に関連する事柄は、簡潔さとラップのためにDBレベルで考慮されません。

あなたはどう思いますか?アドバイス...

答えて

1

データの性質は、データベースモデルを駆動するはずです。フロントエンドの問題ではありません。

都市をドロップダウンリストにロードしてみませんか? display text = cityNameを設定します。値= cityIDを設定します。

0

要素名として都市名/ idを子要素としてXMLを定義することをお勧めします。それはそれを編集/ XMLデータを読むことができます。あなたがこれを検討したいかどうか分からない。

1

私はあなたの質問のテキストを完全に理解していますが、あなたの質問のタイトルに答えるために、私はデータベースに国名を保持します。国/都市は時々名前を変更します。

関連する問題