0

次の問題があります:

入力フィールド名と入力フィールド電話があり、それらは一緒にバインドされ (たとえば、ホーム - 555-5555-555、隠れ家 - 333-333-3 )、ユーザーは必要な数の電話ペアを挿入できます。現時点では (これはアップグレードが必要な古い DB バージョンです)、ユーザーにはデータを挿入するための行が 1 つあります。電話フィールドは次のように作成されます。

333-333-333,55-555-555....電話番号を表示する必要がある場合、これは展開されます。これをそのままにして、Home_55555-55,Hideout_333-33-33...のようにペアリングしたいと思います。

どうすればこれを行うことができますか、これはこれを行う良い方法ですか、それとも従来の方法 (電話ペアごとに 1 行) を行う必要がありますか?

4

1 に答える 1

2

いいえ、これはその方法ではありません。実際には電話番号ごとに行が必要であり、さらに、電話の種類 (例: Home または Hideout) 用に別のフィールド (列) が必要です。データベース テーブルは次のようになります。

+----+----------------+--------------+
| id | phone_location | phone_number |
+----+----------------+--------------+
| 1  | Home           | 333-3333-333 |
| 2  | Hideout        | 555-5555-555 |
  ...

場所用に別のテーブルを検討することもできます (「場所」名が何らかの固定されている場合、つまり、ユーザーが名前をランダムに選択できない場合)。次のようなテーブルを作成します。

+----+----------------+
| id | phone_loaction |
+----+----------------+
| 1  | Home           |
| 2  | Hideout        |
  ...

元のテーブルは次のようになります。

| id | phone_location | phone_number |
+----+----------------+--------------+
| 1  | 1              | 333-3333-333 |
| 2  | 2              | 555-5555-555 |
  ...

もちろん、これはさまざまなユーザーを考慮していないため、 phone_number テーブルに列を追加して、テーブルuser_idを指す列を追加します。users

于 2012-11-15T16:29:43.407 に答える