1

モバイル連絡先のデータベースを設計したいと考えています。ここに私がすでに設計したものを見るためのリンクがあります:

http://upload7.ir/images/87645261298795662612.jpg

これが私のサンプルです!完全ではありませんが、少しだけ試してみてください。ここで問題が発生しました。FAX番号や電話番号などを無制限に持ちたい

このデザインではできません!設計後に別の列を追加する方法はありますか?

または、これを完全に変更する必要がありますか?

これを変更した場合、どうすればよいですか? 別のテーブルを取得して、その中のすべての電話番号を取得し、その電話/ファックス/モバイルに関する情報を取得するために 1 つの列を追加しますか? これを行うと、データベースで繰り返されるデータが常に存在し、良くありません! 別の提案を探しています。

ありがとう :-)

4

1 に答える 1

1

これは、携帯電話/ファックス/その他を保持するための一般的なデザインです。数字。すべてのユーザーは、必要な数の携帯電話/ファックス/電話の記録を持つことができます。番号表を変更することをお勧めします。ここ米国では、電話番号は 1-234-567-9876 のようになります。は1国番号、234は「市外局番」、567は「交換9876局」、 は「駅」です。char先頭に 0 を付けて数値を格納する必要がある場合に備えて、データ型を使用します。

number_types
    id              unsigned int(P)
    description     varchar(15)

+----+-------------+
| id | description |
+----+-------------+
|  1 | Mobile      |
|  2 | Phone       |
|  3 | Fax         |
| .. | ........... |
+----+-------------+

numbers
    id              unsigned int(P)
    country_code    char(3)
    area_code       char(3)
    exchange        char(3)
    station         char(4)
    extension       varchar(10) // Default to NULL

+----+--------------+-----------+----------+---------+-----------+
| id | country_code | area_code | exchange | station | extension |
+----+--------------+-----------+----------+---------+-----------+
|  1 |           98 |        21 |      555 |    5555 | NULL      |
|  1 |           01 |       555 |      555 |    5555 | NULL      |
| .. | ............ | ......... | ........ | ....... | ......... |
+----+--------------+-----------+----------+---------+-----------+

users
    id              unsigned int(P)
    first_name      varchar(30)
    last_name       varchar(30)
    ...

+----+------------+-----------+-----+
| id | first_name | last_name | ... |
+----+------------+-----------+-----+
|  1 | Saroukhani | Smith     | ... |
|  2 | Benny      | Hill      | ... |
| .. | .......... | ......... | ... |
+----+------------+-----------+-----+

users_numbers
    id                  unsigned int(P)
    user_id             unsigned int(F users.id)
    number_id           unsigned int(F numbers.id)
    number_type_id      unsigned int(F number_types.id)

+----+---------+-----------+----------------+
| id | user_id | number_id | number_type_id |
+----+---------+-----------+----------------+
|  1 |       1 |         1 |              1 |
|  2 |       2 |         2 |              1 |
| .. | ....... | ......... | .............. |
+----+---------+-----------+----------------+
于 2013-10-27T15:14:28.193 に答える