我现在有一张表
 
学生表
id name email身份证表
id card 地址表
id address 三者都是1v1的关系 ,怎么创建数据库好些啊?
可以用学生表的id分别对应另外2张表作为外键吗?
还是在学生表里创建 cardid , addressid分别对应身份证表和地址表呢?学生表需要查询出另外2张表的字段
id name email card adress 

解决方案 »

  1.   

    如果真是这么简单几个字段的话,放在一个表里好了建表就用你列出来的字段就行,1v1也交给hibernate去维护,表中可以不用体现。三个实体对象Student , Card , Address ,确定主从关系。这里看,应该是学生表是主。
    Student分别配上Card和Address的一对一关系(cascade等其余属性自己斟酌);
    Card配上与Student的一对一关系,<one-to-one name="student" class="....Student"></one-to-one>另外,主键这么配:<id name="id" type="java.lang.Integer">
      <column name="id" />
      <generator class="foreign">
        <param name="property">student</param> <!-- student是你Card上配置的与Student一对一关系的实体 -->
      </generator>
    </id>Address实体配置雷同Card。