3

WebサイトのUI(サインアップ、サインイン、プロファイルの編集、アドレスの編集など)を設計しています。

以下のテーブルを作成しました。私の質問は、冗長な列やテーブルはありますか?また、ユーザーが別のアドレスを追加/編集できるという事実を考慮して、どの列が主キーになり、どの列が外部キーになりますか?

CountryCode(携帯電話番号の場合)-からCountryCodeの入力ACountryCountry(アドレスの場合)-からの入力Country NameACountryStateアドレスの場合)-StateNameからの入力の3つのドロップダウンリストを使用していAstateます。これらのうち、国コードのドロップダウンはサインアップページに表示されます。他の2つは、ユーザーがログインした後に表示されるアドレス帳ページにあります。AUserAUserAddressテーブルにはデータが保存されます。

これらのテーブルをどのように結合するのかわかりません。十分な/多い/少ない列を含めましたか?どのような変更を加える必要がありますか。

UPDATE1:データベースを次のテーブル/列に更新しました。次に、CountrycodeとCountrycode(マーク付き)の関係を確立するにはどうすればよいですか...または、AUserからCountryCodeを削除する必要があります。両方のテーブルを保持すると、2つの場所にデータが保存されます。私はそれをしたくありません...問題は国コードのフォーマットです。名前とダイヤルコードを使用します(例:インド(+91))。その列をAUserから削除した場合、モバイル番号をどのように保存しますか。それから?国番号の文字列を壊して、市外局番の部分を削除し、携帯番号と一緒に保存する必要があるかもしれません。[モバイル]列。それは複雑すぎるように聞こえます。

ここに画像の説明を入力してください

4

1 に答える 1

2

あなたが正しく得ていない唯一の関係は、AUserとの間ACountryです。現在、あなたは を持ってCountryCodeAUserます。CountryIDの主キーであるため、代わりにそれを使用する必要がありACountryます。

また、すべきでAUserAddressStateIDありませんStateか?その場合、両方を持つ必要はなくStateID、そのテーブルで、列で参照されCountryIDている対応するものを見て、ユーザーの国を判断できます。StateStateID

于 2013-03-21T08:59:45.197 に答える