数据库 主键-外键 的建立到底都有哪些用处?
展开全部
主键用于确保数据的唯一性
例如:
一个学生表。 里面有多个 叫 张三 的学生。
如果没有主键的话,
那么,假如今天一个叫张三的人,去图书馆借书。
图书馆怎么判断,这个 张三, 是这么多 张三中的哪一个呢?
但是如果有一个主键。比如 学号。
那么这个 张三去借书, 图书馆直接 通过学号,可以确认唯一的一个人。
外键用于确保数据完整性。
例如:
一个班级表,一个学生表。 两者建立外键的关系后。
如果班级表里面,只有1班,2班。 那么你尝试插入一条 3班的学生,是不允许的。
又比如,假如 1班下面,有5条学生记录, 你现在要 删除 1班这条班级的记录。
那么根据外键的创建机制
你可能 不允许删除,必须先删除学生记录,后删除班级记录
或者,删除班级记录同时,一起删除学生记录
或者,删除班级记录同时,将学生表的 班级ID那个外键的字段,设置为 NULL.
例如:
一个学生表。 里面有多个 叫 张三 的学生。
如果没有主键的话,
那么,假如今天一个叫张三的人,去图书馆借书。
图书馆怎么判断,这个 张三, 是这么多 张三中的哪一个呢?
但是如果有一个主键。比如 学号。
那么这个 张三去借书, 图书馆直接 通过学号,可以确认唯一的一个人。
外键用于确保数据完整性。
例如:
一个班级表,一个学生表。 两者建立外键的关系后。
如果班级表里面,只有1班,2班。 那么你尝试插入一条 3班的学生,是不允许的。
又比如,假如 1班下面,有5条学生记录, 你现在要 删除 1班这条班级的记录。
那么根据外键的创建机制
你可能 不允许删除,必须先删除学生记录,后删除班级记录
或者,删除班级记录同时,一起删除学生记录
或者,删除班级记录同时,将学生表的 班级ID那个外键的字段,设置为 NULL.
参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/969f70fa84e2873e5d600821.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询