最初我想请你忘记散列密码或与密码相关的w / e,这个问题与保护密码等无关,我知道/了解应该如何做。
考虑读/写性能 - 构建一个或多个表时,存储相关数据的最佳方法是什么?
单个表格,例如:
表用户:id,用户名,密码,哈希,电子邮件, 团体,访问,地址,电话, 父母,ts_created,ts_update
多个表格,例如:
表用户:id,用户名,密码, 哈希,电子邮件,组,访问, ts_created,ts_update
表用户的信息:id,user_id, 地址,电话,父母,ts_created, ts_update
如果您的用户的信息字段可能随着时间的推移而增长怎么办? - 您应该如何处理它?</ p>
例如新字段: birthday_date,评论,情况
有两个表在查询上比单个表慢吗?
如果在这种情况下有多个表只是为了保持一个包含分离数据的好设计,那么这是否意味着由于性能原因它根本没用?
如果你想要真正的sql示例,请告诉我,我会废弃一些内容来更新。
答案 0 :(得分:5)
根据您要存储的数据,您可能需要更多表格:
存储认为这样可能值得存储在自己的单独表中,这意味着将来它应该更容易维护。您需要考虑系统将如何变化。至于性能,如前所述,只要您创建正确的索引并正确使用数据库,它就不应该成为问题。
答案 1 :(得分:4)
您的多表设计看起来很合理 - 一个表包含有关用户的数据,另一个表包含有关此人的数据;如果您只需要用户数据(例如,用于检查访问权限),则人员数据无关紧要。
您建议的新字段可能会作为新列进入人员表。
使用2个(或更多)表并将它们连接在一起不会显着减慢你的速度 - 它甚至可以提高性能(具有良好的索引 - user_id上的唯一索引将是一个良好的开端):
另外,我个人发现使用两个较窄的表而不是单个宽表更容易(在代码和数据库管理中)。