數據庫實體表的關係學習

數據庫實體表關係

1、常見關係:
一對多. 用戶和訂單 分類和商品
多對多. 訂單和商品 學生和課程
一對一. 丈夫和妻子

2、ER圖可以描述實體於實體之間的關係
實體用矩形表示
屬性用橢圓表示
關係用菱形表示

常見關係介紹

1、一對一
2、一對多:

用戶和訂單   
    -- 創建用戶表
    create  table user(
        id int primary key auto_increment,
        username varchar(20)
    );

    -- 創建訂單表
    create  table orders(
        id int primary key auto_increment,
        totalprice double,
        user_id int
    );

    爲了保證數據的有效性和完整性,添加約束(外鍵約束).
        在多表的一方添加外鍵約束
            格式:
                alter table 多表名稱 add foreign key(外鍵名稱) references 一表名稱(主鍵);
            例如:
                alter table orders add foreign key(user_id) references user(id);
    添加了外鍵約束之後有如下特點:★
        1.主表中不能刪除從表中已引用的數據
        2.從表中不能添加主表中不存在的數據
    開發中處理一對多:★
        在多表中添加一個外鍵,名稱一般爲主表的名稱_id,字段類型一般和主表的主鍵的類型保持一致,
        爲了保證數據的有效性和完整性,在多表的外鍵上添加外鍵約束即可.

2、多對多

例子:商品和訂單
        -- 創建商品表
    create table product(
        id int primary key auto_increment,
        name varchar(20),
        price double
    );

    -- 創建中間表
    create table orderitem(
        oid int,
        pid int
    );

    -- 添加外鍵約束
    alter table orderitem add foreign key(oid) references orders(id);
    alter table orderitem add foreign key(pid) references product(id);

    開發中處理多對多:★
        引入一張中間表,存放兩張表的主鍵,一般會將這兩個字段設置爲聯合主鍵,這樣就可以將多對多的關係拆分
        成兩個一對多了
        爲了保證數據的有效性和完整性
            需要在中間表上添加兩個外鍵約束即可.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章