使用一对一表关系而不是简单地将所有数据存储在一个表中的优点是什么?我理解并使用一对多,多对一和多对多的方式,但实现一对一关系似乎是一项单调乏味且不必要的任务,特别是如果您使用命名关联(php)对象到数据库表的约定。使用一对一表关系的优点是什么? (MySQL)
我无法在网络或本网站上找到任何可以提供一对一关系的真实世界示例。起初我认为将用户分成两个表格是合乎逻辑的,例如,将两个表格分开,其中一个包含像关于我的个人资料页面的公共信息,另一个包含诸如登录/密码等私人信息。但是为什么要去通过使用不必要的JOINS的所有麻烦,只要选择哪个字段可以从该表中选择呢?如果我显示用户的个人资料页面,显然我只会选择ID,用户名,电子邮件,aboutme等,而不是包含他们的私人信息的字段。
任何人都在意用一些一对一关系的实际例子来启发我吗?
-1表示在关系数据库中使用装饰器模式是一个好主意。 – symcbean 2010-03-26 12:21:16
是的,我的意思是在byronh给出的意义上延伸。但是,我没有说这是一个好主意,我只是说它可能是一个原因。如果一件事情是好的,它也取决于上下文。有时我不想要,我也不能更改第三方数据库,所以我用一对一的关系“扩展”那个表 – 2010-03-26 22:08:47
是的,还要注意ALTER TABLE在大数据行(数千行)表中添加一列,可能需要很多时间(小时)。与此同时,桌子被锁定,系统管理员可能在夜间醒来...... – Qlimax 2015-07-21 12:42:13