我需要为我的网站实现基本的个性化用户功能。这种类型的数据库是否有标准结构?就像将所有用户信息和数据都放在一个表中,每个用户都有自己的行是一种常见的做法,还是应该将此信息拆分到不同的表中并链接在一起(也许是为了提高效率?),我不太关心安全性在这一点上,但我显然希望过早地进行密码加密。
我试图找到我在Google上想要的东西,但无济于事。请让我知道问题是否需要进一步澄清。
我需要为我的网站实现基本的个性化用户功能。这种类型的数据库是否有标准结构?就像将所有用户信息和数据都放在一个表中,每个用户都有自己的行是一种常见的做法,还是应该将此信息拆分到不同的表中并链接在一起(也许是为了提高效率?),我不太关心安全性在这一点上,但我显然希望过早地进行密码加密。
我试图找到我在Google上想要的东西,但无济于事。请让我知道问题是否需要进一步澄清。
Answers:
不得不去寻找一种大的旧时尚“取决于”。
当然,您将在此表上需要某种键。您可以从UserID开始。这可能只是一个递增的INT(如果您将拥有210万以上的用户,则为bigint)。
我已经看到很多数据库也使用GUID作为主要的UserID。但是,这为使用GUID的PK打开了完全不同的蠕虫病毒。
然后,您需要确定数据库的标准化程度。您要允许您的用户收到多封电子邮件吗?多个电话号码?如果是这样,它们应该在另一个表中。
我将主用户表保留为:
那应该是您的起点。
在这里,您可以根据要存储的内容添加其他列。电子邮件可以链接到电子邮件表,地址可以链接到地址表等。密码可以使用哈希+盐,但是您是否考虑过openid?
我强烈建议你阅读这篇文章,虽然- http://www.sqlservercentral.com/articles/data-modeling/71725/
如果是关于用户身份验证的,我将使用LDAP。如果您已经在使用数据库并且有其他表(订单,产品等),请不要为用户创建单独的数据库。您可能想要加入这些表。