Google通讯录地址簿架构 - 如何为数据提供1到多个字段?

时间:2010-01-31 12:33:49

标签: database-design schema database

在Google通讯录中,它似乎可以根据需要为您提供多个电子邮件地址,电话号码,地址等。您只需单击添加链接即可创建任意数量的字段。

这让我对如何在架构中进行此操作感到好奇吗?

1 个答案:

答案 0 :(得分:5)

有一个名为custom_fields的表(profileid,moduleid,fieldid,fieldlabel),你可以在那里定义字段,例如:phone,dob,dogs,children,然后在另一个表中custom_fields_values(contactid, fieldid,value)您可以为每个客户端/自定义字段设置值。

custom_fields
-------------
user1,contacts,1000,Dogs
user1,contacts,1001,Children
user2,contacts,1002,Car Colour

custom_fields_values
-------------
120,1000,4
120,1001,0
121,1000,0
121,1001,0
122,1002,Red
123,1002,Transparent :)
124,1002,Green