2011-12-15 61 views
1

我需要在数据库中拥有大量的用户数据。现在,我一直在想有两个表,用户,将有只有ID用户名密码和另一个表用户数据会拥有一切就像姓氏等等为用户数据创建多个数据库表?

这是一个首选的方法?

+0

“这是一个首选的方法?”首选为什么?复杂?缓慢?隐私? – 2011-12-15 20:52:28

回答

1

最简单的设计会把所有的字段在一个表中。但是,从这一点来看,您可能需要考虑将这些信息拆分为多个表格。从你的描述中,我不能'告诉是否有任何正当理由这样做。

如果你开始用一个表,你会发现它有利于分割数据等原因:

  • 规范化。
  • 减少争(的应用程序更新不同信息的不同部分)
  • 真正巨大的列清单(看看你的数据库的限制)
  • 其他? (如何保持你的应用程序,也许?)

总之,我会尝试开始简单,并有理由选择更复杂的设计,如果你去那条路线。

0

该设计恕我直言,没有什么错。您可以使用users表并将其链接到users_custom表,其中包含其他信息。只要符合你的设计。请记住,为了获得任何额外的用户信息,您必须始终使用JOIN作为该数据。

对我来说这是偏好的问题,如果你觉得这个表会随着时间增长,考虑你的设计,如果不把一切都在一个表,你认为有必要正确索引列。

您可以通过具有UserLog表,因为他们改变建值的历史观走得更远。

0

是的,它是:)在理论上有这种所谓的“范式”(3NF BCNF,等...)。使用它们,意味着表分隔条件为较小的:)

0

我认为这可能是你最好让这一切在一个表中。假设您将执行唯一的用户名,所有字段(密码,名字和姓氏)对用户名具有函数依赖关系。因此,您可以将它们全部放在同一个表中,并且仍然有一个标准化的数据库。

虽然您可以单独FIRST_NAME和姓氏为自己的表,查询,会得到很多容易(更少的连接),如果你把所有这些领域中的一个表。