本文主要為大家分享一篇關於MySQL資料庫的設計問題,具有很好的參考價值,希望對大家有幫助。一起跟著小編過來看看吧,希望能幫助大家。
題目描述:現在有10萬個左右的數據,記錄一個部門的員工。大部門下是層級結構,有許多個子部門。例如,一級部分A,二級部門A',B',C',三級部門A”,B”,C”。試問如何設計資料庫,我們需要統計二級部分A'下的所有人數。
分析:
這裡用到了一個層級資料庫的設計。
parent_id
#1 | A | NULL |
---|---|---|
B | 1 | |
C | 1 | |
D | 2 | |
E | #2 | |
F | 3 |
3
顯示層級,這裡用到了left join,根據這一層的dep_id
,尋找它的
parent_id
CREATE TABLE DEPARTMENT( DEP_ID INT UNSIGNED AUTO_INCREMENT, DEP_NAME VARCHAR(10) NOT NULL, PARENT_ID INT, PRIMARY KEY(DEP_ID) )CHARSET=utf8;
单个插入 INSERT INTO DEPARTMENT (DEP_NAME, PARENT_ID) VALUES ('A',NULL); 或者批量插入 INSERT INTO department VALUES(1,'A',NULL),(2,'B',1),(3,'C',1), (4,'D',2),(5,'E',2),(6,'F',3),(7,'G',3);
id
name
1 | hgy | ||
---|---|---|---|
2 | abc | 5 | |
3 | def | 6 | |
4 | ddd | 2 | |
5 | #eee | 2 | |
應該考慮到有的人在二級部門(可能沒有三級部門,沒有四級部門),有的人在一級部門,有的人在四級部門(有一級部門,二級部門,三級部門,四級部門)。成績,求四門學科總分大於200的學生,且依逆序排列。 |
根據四個成績的總分進行排序
INSERT INTO people VALUES(1,'hgy',4,'D'),(2,'abc',5,'E'),(3,'def',6,'F'), (4,'ddd',2,'B'),(5,'eee',2,'B');
以上是實例詳解MySQL資料庫的設計問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!