我正在设计一个数据库,最终会有数千名用户。每个用户都有您的个人资料和特定数据。
在您看来,最佳做法是使用id,username,activationLink和hash表格,另一个表格用于地址,年龄,照片,工作,或者最好是所有内容的唯一表格?
感谢您的时间
答案 0 :(得分:2)
如果:
然后将它们保存在一个表中,其他人将它们分开。
在您的模型中,activationLink
似乎每次激活只查询一次,因此我会将其移动到一个单独的表中(允许在帐户激活后删除它)。
地址,年龄,照片和工作通常与用户名一起显示,因此最好将它们合并到一个表中。
答案 1 :(得分:1)
不要让您的初始设计限制将来扩展您的要求的能力(或者只是让其变得困难)。
address
,因此您可以将其放在users
表格中 - 如果您希望他们能够存储“工作”和“家庭”地址,该怎么办?未来,或过去地址的历史?users.photo
中添加了该照片(或其中的网址),那么您必须更改数据结构以允许用户拥有个人资料照片的历史正如Quassnoi所提到的,每个决策都会产生性能影响 - 更多的表意味着更多的复杂性,更多的潜在的慢查询。不要为此创建新表,但要仔细考虑您的数据模型,因为很快就很难对其进行更改。
任何与user
实体严格的一对一关系的值,并且不太可能发生变化并且需要历史记录(出生日期是一个很好的例子)应该列在表中核心定义。任何潜在的一对多关系(即使他们现在不是 )都是他们自己的桌子的好候选人。