两张表是一对一的关系为什么不直接都放在一张表里面?
突然就有这么个疑问,两张表是一对一的关系为什么不直接都放在一张表里面?就是为了查询效率吗?
这个设计的好处是如果只查询一个用户的文章列表会比较快。
因为用户发的文章内容往往比较大, 但是标题往往会比较短。 如果都放到一个表里, 那么这个表会非常大。 查询大表是比较耗时的。
而如果单独出来, jforum_posts这个表会比较小,查询起来比较快。
当然这种设计也不是总是好的。
如果2个表都非常小,那么放到一张表里避免了一次join, 那么效果要比2个表好。 要具体问题具体分析。
.为什么要使用两个表来维护一对一关系,为什么不直接将两个表中的字段全都放在一张表里来展示? 如果都放在一张表里,一:不便于管理(包括查询执行速度),二:也就达不到关系型数据库的特性。三:可更好对业务进行事务隔离操作
.提出这种关系的目的是什么,就是为提高我们数据库查询条件吗? 公司和公司地址,总经理和公司,部门经理和部门 都是一对一 对于小字段小数据量的数据库来说,放到一起无所谓了,但是对于大字段的数据库,要添加删除修改某一个字段,由于数据库大,字段多,数据库找到这个字段耗时久,造成锁表等问题。
同时分离存储大数据的表时,查询也会节省时间,因为某些框架会映射表里面所有的字段,存在一起查询时会把不需要的字段也映射进来造成耗时过久。
还有,大数据量的表分离存储对于索引创建,读写分离,分割等操作都有优势。