数据库表设计什么时候用怎么用双向关联

问题描述

我刚学hibernate里面讲了双向关联,我设计了表student 字段id,name,teacherid,teacher表字段id,name,studentid teacherid关联teacher的id,studentid关联student表的id,然后我想插入其中一张表的时候,无法插入数据 报错信息:Cannot add or update a child row: a foreign key constraint fails (`upload/student`, CONSTRAINT `FK_Reference_2` FOREIGN KEY (`teacherid`) REFERENCES `teancher` (`id`)),难道双向关联的表不能存记录

解决方案

你试试这个数据表看student 字段id,nameteacher表字段id,namestudent_teacher表字段teacherid,studentid, primary key(teacherid, studentid)
解决方案二:
学生和老师不应该是多对多的关系吗?为什么不再单独提取出一张表呢?那张表专门放学生和老师的id,这样关系部更加明朗一些吗?
解决方案三:
对于关系映射 可参考http://jinnianshilongnian.iteye.com/blog/1522591基本够用

时间: 2024-10-26 09:19:29

数据库表设计什么时候用怎么用双向关联的相关文章

体检系统--数据库表设计

问题描述 体检系统--数据库表设计 系统有两个概念:体检记录和体检明细,一条记录对应多条明细,前端展示如下图: 第一张图是记录,第二张是明细,我的个人理解有两种方案: 1.1张记录表,1张明细表(关联记录表的id),明细表记录所有检查项目的数据: 2.1张记录表,n张明细表,分别存储一般项目.内科.外科等检查类别的内容: 请问该怎么设计表结构,便于程序实现,而且表结构清晰?如果有别的方案也可以提出. 解决方案 三张表 一张主表,记录体检总的信息,如体检人等 第二张表为体检类别表,如一般检查.内科

数据库表设计问题,我的这种设计结构怎么样?是否合理?

问题描述 数据库表设计问题,我的这种设计结构怎么样?是否合理? 解决方案 A)主键用int,即可以自增,又比char(32)高效 B)用户权限就是一个关系表,不需要主键字段,用复合主键. C)状态一般是固定几个,没必要单开一个表.要显示文本直接在代码中用 CASE 语句转换即可. 解决方案二: 数据库合理设计 解决方案三: 这样可以,但是感觉没必要,除非数据量很大

sqlserver-求助有关数据库表设计(存储文件)

问题描述 求助有关数据库表设计(存储文件) 我想做一个数据存储的程序,可以把文件存入sqlite,sqlserver,mysql里. 目前有一个问题不知道怎么解决好,我想让这个程序支持文件夹存储, 文件夹存储,那么文件路径要怎么设计好? 解决方案 写一个存储过程,打开指定文件夹的SQL文件--DDL语句.并执行.就可以了. 解决方案二: 这个文件夹也是一样的,只不过你程序做一下判断,是文件夹,那么i就遍历文件夹就,得到所有文件,然后再把文件内容存入数据库 而对于文件就是直接读取内容写数据库,这样

用户权限管理数据库表设计思想

用户权限管理数据库表设计思想 表:(1)用户表(user) (2)权限表(power) (3)部门表(group) (4)角色表(role) (5)用户部门角色表(user_group_role)存放用户id,部门id,角色id (6)权限部门角色表(power_group_role)存放权限id,部门id,角色id 设计理念: a用户可以(绑定)属于m部门n角色   z权限可以(绑定)属于m部门n角色 由此:a就拥有z权限   设计扩展:一个用户可以同时属于多个部门下的多个角色 每个部门下的每

[求助]关于练习相关的数据库表设计、类设计、程序设计问题请教,忘前辈们进

问题描述 本人初学C#2个月了,网上看到有关于各种管理系统的软件介绍博客,想自己写个小练习练练手,但是因为考虑到的东西太多,起步很难,想在此请教前辈们,因为没什么分,还请见谅做1个简单的项目设备信息管理程序,主界面包含:WinForm界面,左边TreeView以项目时间为父节点.项目名称为子节点显示项目名称,右边GridView显示具体项目的交付产品信息主要功能包含:增-弹出信息录入界面框,确认添加后更新数据库及界面删-选中某个项目或某个产品,确认删除后,更新数据库及界面改-选中某个项目或某个产

分享网站群发站内信数据库表设计_MsSql

"站内信"不同于电子邮件,电子邮件通过专门的邮件服务器发送.保存.而"站内信"是系统内的消息,说白了,"站内信"的实现,就是通过数据库插入记录来实现的. "站内信"有两个基本功能.一:点到点的消息传送.用户给用户发送站内信:管理员给用户发送站内信.二:点到面的消息传送.管理员给用户(指定满足某一条件的用户群)群发消息.点到点的消息传送很容易实现,本文不再详述.下面将根据不同的情况,来说说"站内信"的群发是如

数据库表设计的三范式

数据库范式1NF 2NF 3NF BCNF(实例)     设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合.构造数据库必须遵循一定的规则.在关系数据库中,这种规则就是范 式.关系数据库中的关系必须满足一定的要求,即满足不同的范式.目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式 (3NF).第四范式(4NF).第五范式(5NF)和第六范式(6NF).满足最低要求的范式是第一范式(1NF).在第一范式的基础上进一步满足更多 要求的称为第

分享网站群发站内信数据库表设计

"站内信"不同于电子邮件,电子邮件通过专门的邮件服务器发送.保存.而"站内信"是系统内的消息,说白了,"站内信"的实现,就是通过数据库插入记录来实现的. "站内信"有两个基本功能.一:点到点的消息传送.用户给用户发送站内信:管理员给用户发送站内信.二:点到面的消息传送.管理员给用户(指定满足某一条件的用户群)群发消息.点到点的消息传送很容易实现,本文不再详述.下面将根据不同的情况,来说说"站内信"的群发是如

权限设计(上) - 数据库表设计

web权限设计,做权限目前有三种主流实现方式 第一种:手动实现 配置2个拦截器,一个是拦截是否登陆,一个是拦截url的权限,通过角色权限表的配置,把权限url的路径与访问资源的url进行匹配 第二种:spring-security实现,比较重,不推荐 第三章:shiro,目前spring已经舍弃自己的spring-security而采用shiro 先放出数据库设计(普通版,会增加字段),后面会详细介绍