我正在构建一个有各种类型用户的系统。我正在为每个用户存储不同的信息。我想知道我是否应该将所有用户存储在一个表或不同的表中,因为如果我存储在同一个表中,对于某些用户来说,某些字段将为null。什么是最佳实践。我的数据库是MySql
提前谢谢!
答案 0 :(得分:1)
对于注册/登录,就我而言,你必须将它们存储在同一个表中。对于其他选项,例如,他们在他们的个人资料中填写的信息,他们的个人资料图片等。我会为此制作另一个表格。您可以询问详细信息,例如,您是父母吗?如果是,请将其输入数据库。也许你可以通过'兄弟姐妹/母亲/父亲'来使它与Facebook相似。
答案 1 :(得分:1)
最佳做法是不同的表格。请记住您正在使用relational database。来自维基百科
关系被定义为具有相同元组的一组元组 属性。元组通常代表一个对象和有关的信息 那个对象。对象通常是物理对象或概念。一个 关系通常被描述为一个表,它被组织成行 和列。属性引用的所有数据都相同 域并遵守相同的约束。
因此,您的架构应始终normalized方式。
答案 2 :(得分:1)
对于你的例子,你可以选择两个表:
其中,孩子的id是指用户的id。
这是在面向对象的方法中实现用户和子数据类型之间的“是一种”关系的一种相当常见的方式。