与将所有数据简单地存储在一个表中相比,使用一对一的表关系有什么优势?我理解并一直使用一对多,多对一和多对多,但是实现一对一关系似乎是一项乏味且不必要的任务,尤其是在使用命名的情况下将(php)对象与数据库表相关的约定。
我在网上或此站点上找不到任何可以提供一对一关系的真实示例的好例子。最初,我认为将“用户”分成两个表可能是合乎逻辑的,例如,一个表包含公共(public)信息,例如个人资料页面的“关于我”,而另一个表则包含诸如登录名/密码之类的私有(private)信息,等等。但是为什么要去当您只需要从该表中选择要选择的字段时,便会遇到使用不必要的JOINS的麻烦?如果显示用户的个人资料页面,显然我只会选择ID,用户名,电子邮件,aboutme等,而不会选择包含其私有(private)信息的字段。
有人想通过一些真实的一对一关系示例来启发我吗?
最佳答案
我已经使用一对一的关系在不影响应用程序数据库结构的情况下扩展了现有应用程序中的某些功能。这是扩展现有数据库表的一种简便的方法。
使用一对一关系的另一个原因是实现类表继承,其中层次结构中的每个类都有一个表,而对象的表类,其父类表,祖 parent 类表等。
参见,例如,Doctrine 2 Class Table Inheritance Page
关于php - 使用一对一表关系的优势是什么? (MySQL),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2521760/