表结构设计

1、SQL基础:

数据类型

MySQL与Java一样,也有数据类型。MySQL中数据类型主要应用在列上。

 

常用类型:

l  int:整型

l  double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;

l  decimal:泛型型,在表单钱方面使用该类型,因为不会出现精度缺失问题;

l  char:固定长度字符串类型;

l  varchar:可变长度字符串类型;

l  text:字符串类型;

l  blob:字节类型;

l  date:日期类型,格式为:yyyy-MM-dd;

l  time:时间类型,格式为:hh:mm:ss

l  timestamp:时间戳类型;



javabean实体内容:

    private int id;

    private String name;

    private int age;

    private Date birthday;

    private String desc;

    private byte[] photo;

映射文件内容:

    <class name="User" table="t_user">

        <idname="id"type="int"column="id">

            <generatorclass="native"/>

        </id>

        <propertyname="name"type="string"column="name"/>

        <propertyname="age"type="int"column="age_"/>

        <propertyname="birthday"type="date"column="birthday_"/>

        <propertyname="desc"type="text"column="desc_" length="5000"></property>

     <propertyname="photo"type="binary"length="102400"/>

    </class>



2、多对一和一对多的表结构和Forum.hbm.xml和Topic.hml.xml配置文件

(外键在多方)多方(Topic)配置文件如下:

<!-- forum属性,本类与Forum的多对一 -->
<many-to-one name="forum" class="Forum" column="forumId"></many-to-one>

Topic表结构:


其中forumId为外键列,它引用了forum表的id


一方(Forum)配置文件如下:

<!--topics属性,表示本类与Topic的一对多关系 -->
<set name="topics">
<key column="forumId"></key>
<one-to-many class="Topic" /><!-- 关联对方的实体 -->
</set>

forum表:


其中lastTopicId是Forum与topic之间一对一的关系

一对多和多对一总结:两张表中都是自己的属性,但是在多方加入外键引用一方的Id

3、多对多的表结构和xx.hbm.xml配置文件

user.hbm.xml

<!-- roles属性,本类与Role的多对多 -->   

<set name="roles" table="itcast_user_role" lazy="false">
<key column="userId"></key> //本类的
<many-to-many class="Role" column="roleId"></many-to-many> //对方类的
</set>    

user表:


role.hbm.xml

        <!-- users属性,本类与User的多对多 -->
        <set name="users" table="itcast_user_role">
<key column="roleId"></key>
<many-to-many class="User" column="userId"></many-to-many>
</set>

role表:


role_user表:


多对多表结构总结:user和role表中都是自己的属性,在第三张表中引用二者的主键。

4、一对一的表结构和xx.hbm.xml配置文件

Forum.hbm.xml中 单向关联
<!--lastTopic属性,表示本类与Topic的一对一关系, 采用基于外键的方式,本方有外键 -->
<many-to-one name="lastTopic" class="Topic" column="lastTopicId"
unique="true"></many-to-one>
forum表


单向关联(谁记住谁)只能通过forum找到topic,通过topic找不到forum

topic表



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值