如何处理不同类型的用户?

时间:2009-02-12 22:29:16

标签: php mysql database-design

我的网站现在开始允许两种不同类型的用户注册...

  1. 普通人
  2. 公司
  3. 这两个人可以在网站上做同样的事情,但他们的个人资料看起来会有所不同,我相信他们会想要存储不同类型的自己的信息。

    我的问题是:我应该将它们存储在单独的mysql表中吗?或者......我应该把它们放在1上并将它们标记为“用户”或“公司”吗?

    我真的可以用你的输入来帮助我避免陷阱......

    谢谢!

2 个答案:

答案 0 :(得分:8)

This link解释了一些最佳的数据库实践。

我创建了一个带有UID的“帐户”表,其中存储了两者之间的公共信息,以及它的帐户类型。

然后是“公司”表,其中包含公司特定信息,使用与帐户相同的UID,并且我不知道,“用户”表包含特定于用户的信息。

这可以防止您必须创建两个非常相似的表,使用未使用的列或复制数据。

像这样:

Accounts
UID|UserName|Password|Account Type

Companies
UID|Company Name|Address|Contact Person

Users
UID|First Name|Last Name|Display Name

答案 1 :(得分:1)

不要将它们放在完全独立的表格中,否则你必须在两个不同的地方查找用户名,帐户详细信息,以便在任何地方提供语句。然后你会有一个时间的婊子试图做参照完整性并试图使“订单”表引用用户或客户表。将共享信息放入一个表中,并将特定内容放在额外的表中,或者将所有内容放在一个大表中。