联系数据库设计

时间:2013-10-27 08:07:05

标签: database-design android-contacts

我想为移动联系人设计数据库。这里是链接,看看我已经设计了什么:

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

这是我的样本!它不完整,但它只是一个小尝试。我这里有问题!我想拥有无限制的传真号码或电话号码等。

用这个设计不能!无论如何在设计之后添加另一列?

或者我必须彻底改变这个?

如果我改变了这个我该怎么办?拿另一张桌子并取出所有电话号码并添加1列以获取有关其电话/传真/手机的信息?如果我这样做,总会有一个数据在我的数据库中不断重复而且不好!寻找另一个建议。

谢谢: - )

1 个答案:

答案 0 :(得分: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 |
| .. | ....... | ......... | .............. |
+----+---------+-----------+----------------+