1樓:匿名使用者
no,千萬不要一個欄位儲存多個id,肯定會有問題的。
電影表 id 演員 id 關聯電影id 這樣不就ok了。
為什麼資料庫中不說多對一關係
2樓:育知同創教育
多對一不符合二維表的設計規範,也無法滿足唯一的業務規則,所以一般之說一對多。
比如一個人可以有多張銀行卡,總不能多個人用一張銀行卡吧
3樓:匿名使用者
都是說一對多。
為什麼?抓主要矛盾,綱舉目張。
資料庫多對多關係,高手進。
4樓:註冊好勒
1.學生一個表。id,name,num,score。
學生id,名字,學號,和得分情況.主要就是這個score。因為一個學生要記錄他一個學期所有課時的表現。
又不可能為每個課時單獨加欄位,所以建議採取字串記錄的方式|4,1|5,0|6,1|7,1|8,1|9,1|10,0|11,1|12,1|13,1|15,1|17,1|19,1|20,1|22,1|25,1|41,0|44,0|...........
2.課程一個表。id,name.一個id,一個課程名就可以
3.課程安排表。就是一整個學期的課程,id,classid.還可以擴充套件時間,達到查詢周,月情況的目的
score這樣的形式,:前的數字是課程安排表裡的id,比如一天10節課,第一節是1,第二節是2,第二天就是21,22,第三天。。。。。後面的0和1就是是否到課
這樣就差不多了。
查詢一個學生到課總覽,查詢,後的1和0即可
查詢一個學生英語或化學,查詢課程id後,匹配課程安排表裡的classid,查詢出所有屬於英語的id,就是score欄位裡,前面的數字,再count對應,後的0和1;
查詢一個學生本月到課情況。先從課程安排表裡取本月的課程安排表裡的id,再和上面一樣取月時段裡的所有id,查詢,後的0和1.給分吧。
5樓:匿名使用者
學生一張表,課程一張表,學生與課程選課關係表。你是要每節課的表現,那就從選課關係表再擴充套件一張表記錄表現。
6樓:
選課(課程號,學號,上課時間,表現)
資料庫多對多關係,高手進多對多關聯式資料庫必須有三張表嗎??
1.學生一個表。id,name,num,score。學生id,名字,學號,和得分情況.主要就是這個score。因為一個學生要記錄他一個學期所有課時的表現。又不可能為每個課時單獨加欄位,所以建議採取字串記錄的方式 4,1 5,0 6,1 7,1 8,1 9,1 10,0 11,1 12,1 13,1 ...
多對多關聯式資料庫必須有三張表嗎,多對多關聯式資料庫必須有三張表嗎
不是的。比如學生表和選課表 就是多對多的關係 一個學生可以選3門課,一門課程可以被多個學生選。但是 只要在學生表裡有選課欄位就可以了 或者在選課表裡有 選擇它的學生欄位就可以了 在關聯式資料庫中,除了一對一,一對多外,還有一個多對多關係.前兩個關係都只需要內兩個表本容身就能表達清楚他們之間的關係,而...
關於資料庫多對多結構的設計和SQL語句的複雜問題
你這個的前提是 水果個數基本固定 不超過10個,人的個數是不定的,無窮多個 1 不合理 效率很低,用了字串匹配和全表掃描 都是耗時的操作 2 形成了兩個百萬級的大表,關聯查詢效率會很低 我建議三種方案,你自己試驗一下哪種效率最高,因為設計和語句本身沒有效率高低只說,和使用方式和資料量級別有很大的關係...