不是必须的要建关系的,看业务的需要。
举个例子,
比如你有个
图书馆管理系统。
有个图书表[
图书ID,图书名
],有个借阅记录表
[
借阅人ID,
图书ID,
借阅时间]。
某些书遗失了,或者报废了,需要从数据库表中删除。
希望书删除的同时,
顺便把这本书的借阅记录,顺便也一起删除了。
那么这种情况下,创建个
DELETE
CASCADE
外键约束,
你就不必去写存储过程/触发器之类的去做
当删除书的时候,还要删除借阅记录
的代码了。
数据库自动帮你完成。
关系的另外一个用处,就是避免垃圾数据。
还是上面的那个例子
有了外键关联以后,
如果你的 *** 作错误,向
借阅记录表
中
INSERT
数据的时候,
填写了一个不存在的
图书ID
那么数据库就会提示你,说这条记录不能插入。
你就会回去仔细看看,你刚才输入的
图书ID,
在
图书表里面,到底有没有。
打开 MySQL Command Line Client后用"create database student;"创建名为student的数据库,也可以用其他名。若想在数据库student中创建表的话,先用"use student;”然后输入“create table message()”则可创建名为message的表,也可在括号中添加一些数据项。要知道更详细的还是去找一些相关书看看吧。
1、数据库事务一致性需求
很多web实时系统并不要求严格的数据库事务,对读一致性的要求很低,有些场合对写一致性要求也不高。因此数据库事务管理成了数据库高负载下一个沉重的负担。
2、数据库的写实时性和读实时性需求
对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比方说我(JavaEye的robbin)发一条消息之后,过几秒乃至十几秒之后,我的订阅者才看到这条动态是完全可以接受的。
3、对复杂的SQL查询,特别是多表关联查询的需求
任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS类型的网站,从需求以及产品设计角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大的弱化了。
以上就是关于数据库有必要建立表与表之间的关系吗 如果有,可以用sql代码来建立么全部的内容,包括:数据库有必要建立表与表之间的关系吗 如果有,可以用sql代码来建立么、mysql中的ISA关系怎么用代码表现、为什么现在 很多数据库 都没建立关系 而是用代码来 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)