當前位置:首頁 » 操作系統 » 資料庫多對多建表

資料庫多對多建表

發布時間: 2022-11-12 09:05:54

⑴ 飯店點餐資料庫訂單表需要記錄多個食物,應該如何建表,也就是多對多的表

顧客建一個表,食物建一個表,它們是多對多的關系,然後建一個點菜表。這樣行不行?

⑵ 資料庫表 多對多的關系怎麼建啊

A表,a_id,a_name,a_tel三個欄位。
B表,b_id,b_address,b_sol三個欄位。
關聯表,ref_id,a_id,b_id,存儲著AB兩表的id,
比如:A有
a0001,zhang3,139555533
a0002,li4,1397788888
a0003,wang5,13655566
B有
b0001,shanghai,234
b0002,shenyang,332
b0003,chongqing,123
如果想要AB表多對多的話,只需要將關聯表進行增加即可,而AB兩表基本數據不變,
比如:
關聯表ref_table:
r0001,a0001,b0002
r0002,a0001,b0001
r0003,a0001,b0003
r0004,a0002,b0003
通過聯合查詢,就可以得到多對多的數據了,而且不破壞基本數據表。

⑶ 求助在sql中多對多怎麼建表

首先建立兩個表分別對應兩個實體然後建立第三張表作為中間表將之前建好的兩個表的主鍵在中間表中做聯合主鍵這樣就將兩張表的多對多關系聯系起來了我舉個例子一條微博可能屬於多個話題一個話題中也包含多條微博--------------話題表------createtabletopic(topicidintprimarykey,keywordnvarchar2(50)notnull,topictypenvarchar2(50)notnullcheck(topictypein('生活','情感','娛樂','電影','電視','體壇','財經','科技','文化','媒體沙龍')),);-----、微博表——————createtableweibo(weiboidintprimarykey,userIDint,textnvarchar2(140)notnull,);---------、話題微博表createtabletopicWeibo(topicweiboidintprimarykey,weiboidintreferencesweibo(weiboid),topicidintreferencestopic(topicid));

⑷ 資料庫表 多對多的關系怎麼建啊

A表,a_id,a_name,a_tel三個欄位。
B表,b_id,b_address,b_sol三個欄位。
關聯表,ref_id,a_id,b_id,存儲著AB兩表的id,
比如:A有
a0001,zhang3,139555533
a0002,li4,1397788888
a0003,wang5,13655566

B有
b0001,shanghai,234
b0002,shenyang,332
b0003,chongqing,123

如果想要AB表多對多的話,只需要將關聯表進行增加即可,而AB兩表基本數據不變,
比如:
關聯表ref_table:
r0001,a0001,b0002
r0002,a0001,b0001
r0003,a0001,b0003
r0004,a0002,b0003
通過聯合查詢,就可以得到多對多的數據了,而且不破壞基本數據表。

⑸ 請問資料庫在創建表的時候如何設計表關系,一對一,一對多,多對多 請高手舉例說明。謝謝!!!

多對多關系至少需要3個表,我們把一個表叫做主表,一個叫做關系表,另外一個叫做字典表或者副表(字典表是紀錄比較少,而且基本穩定的,例如:版塊名稱;副表是內容比較多,內容變化的,例如)。
按照資料庫的增刪查改操作,多對多關系的查找都可以用inner join或者

select * from 主表 where id in (select 主表id from 關系表)

1,角色任命型

特點:關系表兩外鍵組合無重復紀錄,關系表一般不需要時間欄位和主鍵,有一個表是字典類型的表。
界面特點:顯示主表,用checkbox或多選select設置多選關系。
例如:任命版主(用戶表-關系表-版塊名稱表),角色許可權控制等,用戶是5個版塊版主,只要關系表5行紀錄就可以確立,關系表的兩個外鍵具有聯合主鍵性質。
增加關系:如果沒有組合紀錄,insert之。
刪除關系:如果有組合紀錄,刪除之。

2,集合分組型

特點:同角色任命型類似,關系表兩外鍵組合無重復紀錄,關系表一般不需要時間欄位和主鍵。區別是主副表都不是字典表,可能都很大不固定。
界面特點:顯示主表,用搜索代替簡單的checkbox或多選select,或者一條一條的添加。
例如:歌曲專集(專集表-關系表-歌曲表)。手機分組(分組表-關系表-手機表)。用戶圈子(圈子表-關系表-用戶表)。文章標簽(文章表-關系表-標簽表)
增加關系:同版主任命型。
刪除關系:同版主任命型。

3,明細帳型

特點:關系表可以有重復紀錄,關系表一般有時間欄位,有主鍵,可能還有文字型的欄位用來說明每次發生關系的原因(消費)。
界面特點:顯示關系表,用radio或下拉設置單選關系。
例如:現金消費明細帳或訂單(用戶表-訂單表-消費原因表),用戶可能多次在同一事情上重復消費。積分變化紀錄也屬於這類。
增加關系:不管有沒有組合紀錄,insert之,紀錄時間。
刪除關系:根據關系表PK刪除。

4,評論回復型

特點:同明細帳型關系表一般有時間欄位,有主鍵,區別是重點在文字型的欄位用來說明每次發生關系的內容(評論回復)。
界面特點:回復文本框。
例如:論壇回復(用戶表-回復表-帖子表),用戶可能多次在不同帖子上評論回復費。
增加關系:不管有沒有組合紀錄,insert之,紀錄時間和文字。
刪除關系:根據關系表(回復表)PK刪除。

5,站內簡訊型

特點:主副表是同一個,關系表一般有時間欄位,有主鍵,重點在關系表文字型的欄位用來說明每次發生關系的內容(消息)或者其他標記位來表示文字已讀狀態時間等。
界面特點:回復文本框。
例如:站內簡訊(用戶表-簡訊表-用戶表),用戶可能給用戶群發或者單發,有標記位來表示文字已讀狀態時間等。
增加關系:不管有沒有組合紀錄,insert之,紀錄時間和文字。
刪除關系:根據關系表(回復表)PK刪除。

6,用戶好友型

特點:主副表是同一個,同集合分組型,關系表兩外鍵組合無重復紀錄,關系表一般不需要時間欄位和主鍵。
界面特點:同集合分組型,顯示主表,用搜索代替簡單的checkbox或多選select,或者一條一條的添加。
例如:下載站點的文件,(文件表-關系表-文件表)可以被軟體工具打開,軟體工具本身也是一種文件,可以被下載。用戶的好友,也是用戶(用戶表-好友關系表-用戶表)
增加關系:同版主任命型。
刪除關系:同版主任命型

⑹ 在SQL中怎麼創建一個多對多的表,分析實體,找出關系模式,並定義它們之間的關系

首先建立兩個表
分別對應兩個實體
然後建立第三張表作為中間表
將之前建好的兩個表的主鍵在中間表中做聯合主鍵
這樣就將兩張表的多對多關系聯系起來了
我舉個例子
一條微博可能屬於多個話題
一個話題中也包含多條微博
--------------
話題表------
create
table
topic
(
topicid
int
primary
key,
keyword
nvarchar2(50)
not
null,
topictype
nvarchar2(50)
not
null
check(topictype
in
('生活','情感','娛樂','電影','電視','體壇','財經','科技','文化','媒體沙龍')),
);
-----、微博表——————
create
table
weibo(
weiboid
int
primary
key,
userID
int
,
text
nvarchar2(140)not
null,
);
---------、話題微博表
create
table
topicWeibo
(
topicweiboid
int
primary
key,
weiboid
int
references
weibo(weiboid),
topicid
int
references
topic(topicid)
);

⑺ mysql建立外鍵時,多對多如何建立

一張表中的主鍵只能有一個,外鍵可以有多個,如果一張表中多個列都需要被別的表的外鍵參考,需要使用候選碼(非空並且唯一),具體到你的這個問題的需求可以考慮用如下方法解決:

把a表中的bookid和authorid都設置為非空並且唯一,即

create table a(bookid int not null unique, authorid int not null unique);

然後在book表和author表中就可以分別設置外鍵來參照a表中兩個不同的欄位了。

  1. 打開我的navicat,然後找到我的teacher表,選中它,然後點擊菜單欄上的『design table'

  2. 2. 在彈出的對話框中找到「Foreign Keys」,然後單機。

  3. 3. 然後會出現一個設置外鍵的界面,一共有七列。簡單介紹一下這幾列的意思。『name』:可以不填,你一會保存成功系統會自動生成。FieldName』:就是你要把哪個鍵設置為外鍵。這里選擇『dept』,『Reference DadaBase』:外鍵關聯的資料庫。『Reference Table『 :關聯的表 這里是dept表『Forgin filed Names』:關聯的的欄位,這里是code『ondelete』:就是刪除的時候選擇的動作。這里我的選擇是setNull,意思就是當關聯的表刪除以後,teacher》dept欄位會設置為null.

  4. 4. 設置完成後點擊『save』保存退出,也可以點擊『add Foreign Key』再添加一個外鍵。


  1. 打開我的navicat,然後找到我的teacher表,選中它,然後點擊菜單欄上的『design table』。如下圖:

  2. 2. 在彈出的對話框中找到「Foreign Keys」,然後單機。如下圖:

  3. 3. 然後會出現一個設置外鍵的界面,一共有七列。簡單介紹一下這幾列的意思。『name』:可以不填,你一會保存成功系統會自動生成。FieldName』:就是你要把哪個鍵設置為外鍵。這里選擇『dept』,『Reference DadaBase』:外鍵關聯的資料庫。『Reference Table『 :關聯的表 這里是dept表『Forgin filed Names』:關聯的的欄位,這里是code『ondelete』:就是刪除的時候選擇的動作。這里我的選擇是setNull,意思就是當關聯的表刪除以後,teacher》dept欄位會設置為null。如圖

  4. 4. 設置完成後點擊『save』保存退出,也可以點擊『add Foreign Key』再添加一個外鍵。k如圖:

⑻ 資料庫建表問題:兩張多對多的表該怎麼建!

多對多 的情況下, 需要一個中間關聯表


例如下圖:

一個用戶,可以有多個角色,

一個角色下面,有多個用戶。


熱點內容
怎麼設置電腦開機密碼和屏幕鎖 發布:2025-05-16 03:07:05 瀏覽:55
華為鎖屏密碼忘記了怎麼解鎖 發布:2025-05-16 03:06:26 瀏覽:474
安卓文字為什麼沒有蘋果舒服 發布:2025-05-16 03:01:26 瀏覽:357
phpnow解壓版 發布:2025-05-16 02:52:49 瀏覽:811
dmporacle資料庫 發布:2025-05-16 02:44:31 瀏覽:831
雲主機上傳 發布:2025-05-16 02:44:30 瀏覽:82
滑鼠如何編程 發布:2025-05-16 02:29:09 瀏覽:816
安卓70能用什麼軟體 發布:2025-05-16 01:45:09 瀏覽:481
編程發展史 發布:2025-05-16 01:38:52 瀏覽:529
android圖片氣泡 發布:2025-05-16 01:38:40 瀏覽:887