phpmyadminusers
に以下のフィールドを含むテーブルが1つあります。
users
:
uid | 名前| 連絡先番号
1人のユーザーに対して複数の連絡先番号が存在する場合があります。
これを解決する1つの方法は、連絡先番号にもう1つのテーブルを使用し、その主キーをusers
テーブルに渡すことです。
これ以外の方法はありますか?contact.no
フィールド に配列構造を実装できますか?
phpmyadminusers
に以下のフィールドを含むテーブルが1つあります。
users
:
1人のユーザーに対して複数の連絡先番号が存在する場合があります。
これを解決する1つの方法は、連絡先番号にもう1つのテーブルを使用し、その主キーをusers
テーブルに渡すことです。
これ以外の方法はありますか?contact.no
フィールド に配列構造を実装できますか?
そこにコンマを置いて複数の数値を保存することもできますが、そうすると、RDMS
との概念全体が失われますNormalization
。それは良いデータベース設計ではありません。したがって、テーブルを正規化し、そのような複数の情報を1つのフィールドに格納しないことをお勧めします。テーブルがもう1つあれば、データベースは実際にはストレスを感じません。
非常によく書かれた説明は、MicrosoftのWebサイトにあります。
エントリのタイプごとに複数のテーブルを作成する必要はなく、より堅牢なテーブル構造を作成するだけです。正規化する必要のある情報が一貫した形式であることを確認してください。
ユーザー: uid | 名前| ユーザー名
1,Bob,bcratchet
情報: iid | itype | icontent | uid
1,cell,000.000.0000
2,home,000.000.0000
3,home_addr,1234 Anystreet, anytown USA
4,work_addr,4567 Anystreet, anytown USA
select * from Users u、Info i where u.uid = i.uid and name = "Bob";
どのアプリケーションでもそれを多次元配列にプルすれば、準備は完了です。
編集* 理想的には、さらに進んでitypesのようなテーブルを表示し、次のようにタイプをさらに正規化します。
itypes: itype_id | 私はタイプする
1,cell
2,home
3,home_addr
4,work_addr
次に、Infoテーブルでは、「itype」ではなく「itype_id」と表示されます。