随笔-数据库表的关系

一对一

情景:

网页通过用户名和密码登陆到网站首页;还要知道该用户的详细信息,如家庭地址,教育背景,联系电话,是否已婚,入职/离职时间等信息;

一般网站注册的时候先注册一个用户名和密码,然后你进入该网站的时候,提示你完善个人信息的;

建表:

一张base_user表,字段有id,用户名,密码

一张user表,字段有base_user的id,家庭地址,教育背景,联系电话,是否已婚,入职/离职时间


多对一(在多的一方设置关联字段),一对多(在多的一方设置关联字段),多对多(中间表)
情景:

基金行业,有基金产品信息,基金产品的净值,基金产品公告,基金经理

基金产品信息与基金产品的净值是一对多的关系,一个产品工作日期都有净值产生;

基金产品信息与基金产品公告是一对多的关系,每个产品都有许多介绍该产品的一些情况文章,这些文章是针对该产品的;

基金产品信息与基金经理是多对多的关系,一个产品有多个产品经理在管理着,一个经理管理着多个产品;

建表:

基金产品信息:id,产品名称,产品规模,成立日期,风险收益特征,产品类型,最低认购金额等,但是产品的类型是多个产品有可能都是同一个类型,所以可以把产品的类型放在一张表里面,便于管理

(基金产品信息与产品类型多对一的关系);

基金产品的净值:id,关联产品的id,单位净值,日期等

基金公告:id,关联产品的id,内容,日期等

基金经理与基金产品是多对多的关系,有个中间表

中间表信息:id,基金经理id,基金产品id,任职时间,离职时间等

基金经理:id,姓名,学历,是否已婚;但是在经理,经理个人的履历中的一些信息可以单独设计一个表,如从教育情况,工作经验,在那工作等(一对一的关系)


话题外:

用户与角色,角色与菜单,角色与网站栏目都是多对多关系


后台cms管理:

一对一的情况,显示你的id,用户名,最后登录的时间然后点击一个按钮弹出一个填写个人详细信息的,填写的信息信息录入到详细信息的表,id就是用户的id;

一对多或多对一在多(关联id)的一方提供一个select下拉框选择一的那id;

多对多,可以单独为中间表录入;也可以用radio进行选择,然后分次插入到中间表(如用户与角色的关系,用户是角色是多对多的关系,但是通常是让用户选择多个角色,同样的角色可以多个人都选);







郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。