如何更好地创建Users表?

时间:2016-07-08 10:42:31

标签: php sql database laravel

我创建了Users表。 用户注册后,系统将其地址,电话,城市和更多个人详细信息输入Users表。 还有另一个名为Contacts的表,用户可以在其中添加其他人员详细信息。

现在,如果有Contacts表,如何在Users表中保存用户的个人详细信息?在一个包含所有用户个人详细信息的json列中,还是在普通列(地址,电话,城市)中?

我只是不想发生多种数据的情况。

2 个答案:

答案 0 :(得分:1)

我认为每个字段的单独列将是更好的选择!

答案 1 :(得分:0)

嗯,将它存储为JSON当然很容易,但是这样,搜索数据库中的某些内容可能会有点麻烦(比如你希望检查所有用户)以给定的城市为例) 在用户信息方面,我总是发现最好的方法是只在users表中存储登录重要数据和基本信息。

类似的东西:

id | email | password 

然后为其他数据设置不同的表。

名称等(用户只有一个(当然一个可以有多个名字,但我通常只存储名字和姓))可以存储在user_information表中,该表位于与用户的一对一关系(user_id的外键,以便在需要时可以快速获取)。

说到地址和电话号码,用户实际上可能有多个 我知道你的系统/应用程序可能只支持一个地址或一个电话号码等,但它始终很好地使它从一开始就“正确”,因此很容易让用户添加多个只要有需要,他们就会

那样,你会有几个不同的表:

  • users
  • user_information
  • addresses
  • phone_numbers
  • 等......

user_informationaddressesphone_numbers最好都有一个user_id列,用于指向拥有它的用户的外键。如果您希望可以为联系人使用相同的表,也可以添加contact_id(以及指向联系人的外键)。