1. 程式人生 > >十二-多表的建立及關係-多對多

十二-多表的建立及關係-多對多

多表的建立及關係-多對多

      多對多,在開發中我們一般引入一張中間表,在中間表中存放兩張表的主鍵,一般還會將這兩個主鍵設定成中間表的聯合主鍵()。

例子:  商品和訂單

  --建立商品表

          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);

在開發中處理多對多:

                         引入一張中間表,存放兩張表的主鍵,一般會將這兩個欄位設定為聯合主鍵,這樣就可以將多對多的關係拆成兩個一對多了。

              為了保證資料的有效性和完整性

                                  需要在中間表上增加兩個外來鍵約束即可。

圖示:

             

相關推薦

-建立關係-

多表的建立及關係-多對多      多對多,在開發中我們一般引入一張中間表,在中間表中存放兩張表的主鍵,一般還會將這兩個主鍵設定成中間表的聯合主鍵()。例子:  商品和訂單  --建立商品表          create table product(           

SSM框架之MyBatis()--查詢查詢結果對映

使用MyBatis這一強大的框架可以解決很多賦值的問題,其中對於子配置檔案中的小細節有很多需要注意的地方,使用這個框架後主要就是對於配置檔案的編寫和配置。 今天我寫了一個多表查詢,表的基本結構如下: 使用者表t_user:使用者編號uid,賬號account,暱稱nickn

FFmpeg總結()用ffmpeg與nginx實現直播路流並發播放

xxx 開源 conf ref itl rect arc med rtm 圖:撒哈拉沙漠 下載 nginx 和 nginx-rtmp源碼: http://nginx.org/download/nginx-1.5.10.tar.gz https://github.com/a

MySQL資料庫操作(四)——之間的關係

主鍵與外來鍵 1、一張表可以有多個外來鍵 2、外來鍵是表的主鍵,可以是別的表,也可以是本身(少見) 3、外來鍵可以為null,可以重複,但是不能不存在,必須要查的到 建立語法 foreign key(

(轉)python 全棧開發,Day72(昨日作業講解,昨日內容回顧,Django建立)

昨日作業講解 1.圖書管理系統 實現功能:book單表的增刪改查 1.1 新建一個專案bms,建立應用book。過程略... 1.2 手動建立static目錄,並在目錄裡面建立css資料夾,修改settings.py,設定static的目錄位置 STATI

五、hibernate之間的關係(一對關係

資料庫表與表之間的關係 一對多:一個學校可以有多個學生,一個學生只能有一個學校 多對多:一個學生可以有多個老師,一個老師可以教多個學生 一對一:一個人只能有一個身份證號,一個身份證號只能找到一個人 一對多關係 建立學生和學校表 create table school( sc

mysql資料庫備份excel表格匯出指令碼編寫

#!/bin/sh # Database info DB_USER="root" DB_PASS="min" DB_HOST="localhost" DB_NAME="product" # 資料庫表

SQL列子查詢,內容拆分成

//將查詢到的人員欄位,轉成xml,再用slq xml操作語句,按逗號分拆成多行,只有sql server才支援這樣做 SELECT    B.manage FROM ( SELECT manage=CONVERT(XML , '<v>' + REPLACE(myInfo.manage , ','

框架之hibernate一對建立儲存

cn.scxh.hibernate.model java Grade類: package cn.scxh.hibernate.model; import java.util.Set; /** * 一對多單向關聯 * 班級 grade ——> 學生 studen

mysql學習(5):之間的關係

mysql相互關聯的表之間存在一對一,一對多(多對一),多對多的關係。 1,一對一的關係 這種關係即多個表具有相同的主鍵,實際中用的並不多,因為完全可以將這種關係的合併為同一張表。 2,一對多(多對一)的關係 其中表1的主鍵是表2的外來鍵(即表1的某欄位作為主鍵,表2的相同

FFmpeg總結()用ffmpeg與nginx實現直播路流併發播放

編譯安裝: cd nginx-1.5.10 ./configure –with-http_ssl_module –add-module=../nginx-rtmp-module-master make make install 瀏覽器輸入loc

同一個資料庫例項,不同使用者下建立檢視,Hibernate完成ORM對映,Spring整合,後臺實現

1、同一個資料庫例項,同用戶,多表建立檢視 2、同一個資料庫例項,不同使用者下,多表建立檢視 3、同一個資料庫,不同資料庫例項,多表建立檢視 4、不同型別資料庫,多表建立檢視 1、同一個資料庫例項,同用戶,多表建立檢視 暫缺!! 2、同一個資料庫例項,不同使

MySQL中Update、select聯用操作單檢視與臨時的區別

一、MySQL中使用從表A中取出資料來更新表B的內容 例如:要update表data中的一些列屬性,但是修改屬性的內容來源是來自表chanpin。SQL語言中不要顯示的出現select關鍵字 update data d,chanpin c set d.zhulei=c.z

愛創課堂每日一題第天 XSS原理防範?

前端 前端學習 前端入門 Xss(cross-site scripting)攻擊指的是攻擊者往Web頁面裏插入惡意 html標簽或者javascript代碼。比如:攻擊者在論壇中放一個看似安全的鏈接,騙取用戶點擊後,竊取cookie中的用戶私密信息;或者攻擊者在論壇中加一個惡意表單,當用戶提交表單

MyBatis查詢操作——XML(一對

題目:使用Mybatis,使用XML方式查詢表中資料(一對多,在原來單表的基礎上修改) 單表查詢操作連結 一、思路: 思路(實體類+實體類對映檔案+mybatis主配置檔案+測試類): 我們的目標是要通過一條sql語句,把兩張表裡面的資料查詢出來。 第一:改造我們的實體類 1、給

GoLang學習筆記()匿名函式回撥用法

Go語言支援匿名函式,即在需要使用函式時,再定義函式。 匿名函式沒有函式名,只有函式體,函式可以被作為一種型別被賦值給變數,匿名函式也往往以變數的方式被傳遞。 匿名函式經常被用於實現回撥函式、閉包等。 定義格式: func(引數列表)(返回引數列表){    //函式體 }

Android中使用OrmLite(一):建立增刪改查

OrmLite是一個輕量級的ORM框架,面向JAVA語言。也是時下流行的Android的ORM框架之一。在Android中使用Sqlite資料,如果又不想寫SQL,OrmLite或許是個不錯的選擇。 使用OrmLite,首先要在gradle

Linux真小白入門教程第集——使用者檔案使用者組

Linux沿用了Unix檔案許可權的方法,允許使用者和組根據每個檔案和目錄的安全性設定來訪問檔案。Linux安全系統的核心是使用者賬戶,每個進入Linux的使用者都會被分配唯一的使用者賬戶,使用者對系統中各種物件的訪問許可權取決於他們登入時所用的賬戶。 使用者許可權是通過建立使用者時分配的使

python openpyxl模組實現excel的讀取,新建立原資料追加新資料

當實際工作需要把excel表的資料讀取出來,或者把一些統計資料寫入excel表中時,一個設計豐富,文件便於尋找的模組就會顯得特別的有吸引力,本文對openpyxl模組的一些常見用法做一些記錄,方便工作中查詢(好記性不如爛筆頭) author:he

MySQL 資料建立管理

use stuinfo; -- 指定當前資料庫 CREATE table if not exists student1( -- 建立資料表student1 sNo char(10) not NULL, sName varchar(20) not NULL, sex char(2), birthda