解决方案 »
- select 嵌套查询问题
- MySQL如何进行范围查询
- ADOX的Catalog取得mysql的表名时出现中文乱码问题
- 请大家帮忙看看,使用mysql connector/c++ 往数据库中插入blob字段出1210错
- 抓取网页,遇到一个入库问题,是关于字符集的。
- 散分,并如何判断时间段上有重叠冲突。
- tomcat连接mysql 8小时没有数据库操作就会断开连接!!!
- 请问哪里用法有误?
- 关于discuz论坛二次开发操作数据库的问题。
- 导入SQL数据库提示Failed to open file 'load_departments.dump'
- 对于mysql 字段设为NULL的疑惑
- mysql数据表优化问题
1.author其实也是book的一种信息,可以存在book表里面
2.当你以后要找某本book的author的时候,如果有关系表,就需要连接关系表,如果数据量很大,可能会有效率问题。相反直接存book表,可以直接通过bookid找到这条信息的author,通过主键走索引效率很高。
3.多一个关系表也会增加维护成本。当你在book添加记录的同时还要跟新关系表。
把书的id和作者id拿出来组建关系表, 一本书可能不止一个作者的
我的理解是跟表之间的关系有关:添加关系表的前提是 两个表bookes表和author表是多对多的关系。
books_id int,
author_id int如果是1:N,就用如下:
id int primary key,
title char(255),
author_id int #引用自author
1.author其实也是book的一种信息,可以存在book表里面
2.当你以后要找某本book的author的时候,如果有关系表,就需要连接关系表,如果数据量很大,可能会有效率问题。相反直接存book表,可以直接通过bookid找到这条信息的author,通过主键走索引效率很高。
3.多一个关系表也会增加维护成本。当你在book添加记录的同时还要跟新关系表。
這個適合一本書對應一個作者的情況。多謝版主。
id=>1, title=>'book one',author_id=>1;
id=>2,title=>'book two',author_id=>2;
...
id=>1, title=>'book one',author_id=>1;
id=>2,title=>'book two',author_id=>2;
...如果你们业务场景是这样子的,一本书有多个作者,一个作者参与多本书的创作,这明显不就是N:N的关系嘛,那肯定用关系表啊。