Ⅰ 为什么数据库设计主表跟子表不建立外键关系
为了避免错误的提示信息,很多时候数据库报错代码无法捕捉准确的数据库错误。
所以为了方便现在很流行由代码来维护外键信息,而不是由数据库维护。
也就是责任在代码中,而不是不负责的丢给数据库
在数据库建立外键会有同步并发访问加锁之类的问题。
所以现在都这么干了,你也可以去关注一下nosql。
Ⅱ 数据库为什么有些表之间无法建立关系
请补充点具体内容啊。光你这几句话,根本不知道该如何解决你的问题。。。
1.
你用的是什么数据库,版本是什么?
2.
哪些个表间无法建立关系?你希望得到什么样的关系?
3.
“表示通过导入excel的”具体是什么?原始数据需要从Excel中导到数据库么?
Ⅲ vfp中数据库中,数据库表之间不能建立的关系是
要建立永久关系的这三个表必须要属于同一个数据库。
打开数据库设计器,回主表要建立主索答引或候选索引,子表建立普通索引就可以,然后按住左键拖动出一条线。
主表必须要建立主索引或候选索引。
子表如果用此字段也建立的主索引或候选索引,那将建立的是一对一的永久关系。
子表如果用此字段建立的普通索引,则建立的是一到多的永久关系。
Ⅳ 数据库都要建立关系嘛,下面是我的数据库,表之间的关系一定要在数据库里建好吗
主明细表建立关系就够了
至于其他辅助表,什么用户表、部门表完全没有必要建立关系
弄来弄去就乱了
用sql语句处理就好了
Ⅳ 数据库有必要建立表与表之间的关系吗 如果有,可以用sql代码来建立么
不是必须的要建关系的,看业务的需要。
举个例子,
比如你有个
图书馆管理系统。
有个图书表[
图书ID,图书名...
],有个借阅记录表
[
借阅人ID,
图书ID,
借阅时间...]。
某些书遗失了,或者报废了,需要从数据库表中删除。
希望书删除的同时,
顺便把这本书的借阅记录,顺便也一起删除了。
那么这种情况下,创建个
DELETE
CASCADE
外键约束,
你就不必去写存储过程/触发器之类的去做
当删除书的时候,还要删除借阅记录
的代码了。
数据库自动帮你完成。
关系的另外一个用处,就是避免垃圾数据。
还是上面的那个例子
有了外键关联以后,
如果你的操作错误,向
借阅记录表
中
INSERT
数据的时候,
填写了一个不存在的
图书ID
那么数据库就会提示你,说这条记录不能插入。
你就会回去仔细看看,你刚才输入的
图书ID,
在
图书表里面,到底有没有。