这是一个常见的设计,用于举行移动/传真/等。数字。每个用户可以根据需要拥有尽可能多的移动/传真/电话记录。您可能需要更改美国的数字表,这里的电话号码如下所示: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 |
| .. | ....... | ......... | .............. |
+----+---------+-----------+----------------+
是的,你可以把彼此表联络号码(ID,使用ContactID(外键,从联系人表中获得),数量,类型(传真/电话/手机),详情)。在这个ContactID中每次都会重复,但它会比分别获取3个表格好得多,这是处理与同一个Contact有关的多个数据的标准化方法。您的关心或其他建议,将在这里赞赏。 –
但这个数据库ganna是为移动联系人!我想如果我们要使用这种表格,它会让我们的数据库变慢!因为如果我们有10000条记录或更多记录,并且我们希望为#1联系人添加更多的移动设备,则它将位于表格末尾,并且会使我们的程序稍微延迟以记录该记录。 如果我们对每种数字使用Specific表,它将使我们的搜索速度更快,并且我们可以获得更好的查询,因为我们可以将索引表仅用于手机号码,可以通过手机号码或更多选项查找人员。 再次感谢你Ankit Arora – Saroukhani
顺便说一下,当我说有总是不断重复的字段是类型字段。对于每个联系人ü应该不断给记录是这样的: 1,1,123456,手机 2,1,123457,手机 3,2,123333,手机 你可以看到移动领域的不断重复。 – Saroukhani