数据库表多对多问题(跪求)
教师可以教多门专业, 专业可以被多个教师教,其中数据库设计为三张表,分别为教师表、专业表、教师和专业的关联表,其中关联表中包含教师号和专业号,分别参照教师表和专业表,现在想实现的功能是加入教师信息和专业信息,可以保存教师教的专业是什么,该如何向关联表插入数据,将教师和专业关联起来?
------解决方案-------------------- 教师表 TID 教师信息
专业表 CID 专业信息
关联表 TID CID
------解决方案-------------------- 加个中间表,将多对多的主键串起来...同意一楼
------解决方案-------------------- 在教师表增加set<专业>,在专业增加set<教师> hibernate配置成多对多。
------解决方案-------------------- 引用: 教师可以教多门专业, 专业可以被多个教师教,其中数据库设计为三张表,分别为教师表、专业表、教师和专业的关联表,其中关联表中包含教师号和专业号,分别参照教师表和专业表,现在想实现的功能是加入教师信息和专业信息,可以保存教师教的专业是什么,该如何向关联表插入数据,将教师和专业关联起来?
无需插入额外的数据,现有的已经够了
教师表 T_TEACHER 专业表T_MAJOR 教师和专业的关联表 T_TEACHER_MAJOR
T_TEACHER(TID,TNAME,TAGE....,TS);
T_MAJOR(MID,MNAME,MDESC....,TS);
T_TEACHER_MAJOR(TID,MID,TS);
教师教的专业是什么:
SELECT T_TEACHER_MAJOR.TID,T_TEACHER.TNAME,T_TEACHER_MAJOR.MID,T_MAJOR.MNAME
FROM T_TEACHER_MAJOR,T_TEACHER,T_MAJOR
WHERE T_TEACHER_MAJOR.TID = T_TEACHER.TID
AND T_TEACHER_MAJOR.MID = T_MAJOR.MID;
如果确实需要一个“表”,把上面的sql做成视图
------解决方案-------------------- 用个中间表存放多对多表的主键值关联
------解决方案--------------------
<class name="Teacher">
<id name="id" column="TID">
<generator class="native"/>
</id>
<set name="majors" table="Teacher_Major">
<key column="TeacherId"/>
<many-to-many column="MajorId"
class="Major"/>
</set>