mysql表設計
1. 大項目如何設計mysql表結構
1、這個資料庫設計關系不大,但是有關系。首先,你要考慮資料庫的選型,大型項目是否用MySQL。
2、用MySQL是否對事務完整性有要求。InnoDB和MyISAM的區別。
3、了解一下DP(設計模式),在架構上考慮緩存、讀寫緩沖、讀寫分離等手段。
4、MySQL目前尚不支持表分區等功能,那麼就要求要考慮是否分表存儲。表存儲的物理介質是否要分開。
5、索引。
6、即時數據和歷史數據分開。
大體上先做這些,後期根據實際情況酌情優化。
2. mysql資料庫中間表如何設計
命令行的我不知道,安裝一個圖形界面吧,mysql
administrator這個很好用的,在表上右鍵-maintenance-repair
table就可以了
3. [MySQL]MySQL表設計如何正確選著數據類型
選擇正確的數據列類型能大大提高資料庫的性能和使資料庫具有高擴展性。在選擇內數據列類型時,請從容以下幾個方面考慮: 存放到數據列中的數據類型。 數據值的取值范圍。 考慮性能和處理效率。 數值操作比字元操作快。 小類型的處理速度比大類型快。 不同數據表中固定長度類型和可變長度類型的處理效率是不同的。 可變長度類型在經過刪除和修改操作後容易產生碎片,降低系統性能,需定期運行OPTIMIZE TABLE命令以優化數據表。 固定長度類型由於有固定的長度,所以容易確定每條記錄的起始點,可加快數據表的修復速度。 在MyISAM和ISAM表中使用固定長度類型數據列有助改善資料庫性能。 在InnoDB表中,固定長度和可變長度數據列類型都以相同方式存儲,所以固定長度數據列類型並沒有性能優勢,反而由於可度長度數據列類型由於佔用存儲空間較少,所以處理速度會快些。 可索引類型能加快數據的查詢速度。 明確指定數據列的NOT NULL屬性可使MySQL在檢索過程中不用去判斷數據列是否是NULL,所以可加快處理速度。 數據如何進行比較,是否區分大小寫。 是否要在數據列上建立索引。
4. mysql 子表和父表 設計成下圖
如果父表和子表都作為基表的話,可以從重新建一個關系表,專門存放他們的關系。
A(aid,aname,asex)
B(bid,bname,bdate)
C(aid,bid,數量)
5. MySQL資料庫表設計,需要建幾個表,包括哪些欄位
簡單點: 用戶表(用戶ID,姓名,密碼,性別,年齡,職業,微信,郵箱,手機,專長,用戶狀態,登錄時間,是否管理員)其中也可以單獨設置一個管理員表
試題類別:(類別 ID,類別名稱,類別描述)
試題表:(試題 ID,試題類別 ID,試題描述,試題難度,試題答案)
答題表:(答題 ID,用戶 ID,試題 ID,答題答案,答題評分)
大概就這樣
6. 用MYSQL設計網站資料庫,表的設計
你要這樣想,如果分四張表,以後我叫你加個計算機學院的新聞,你是不是再來多張表、來個數學專系的。。。然後再然後。。你可以把他分開,新聞類別為一張表TB_TYPE;然後,再新聞表,對應的,每個新聞屬於一個類別。這樣對以後添加,就是加個類別而已
7. mysql表設計
用戶表(UID,名稱,密碼,……)
好友表(UID1,UID2,添加時間,最後通話時間,累計通話次數,……)
8. 根據如下表格內容如何設計資料庫表(Mysql)
1、職責信息表、包含表述信息
2、工作任務表
3、職責和任務關聯中間表
這樣就做到了職責表1對多個工作表,後面不管怎麼加都是一個套路
9. mysql表的設計和關聯問題
這個問題問的好,要弄一個表很容易,關鍵是表設計出來是否合理!
如果表設計的好,則會相當清晰,易於理解,後續開發上事半功倍,維護也方便;如果設計的不好,則難以理解,維護困難,代價大。
表與表之間的關系有三種:1.一對一,2.一對多,3.多對多
一對一的表,兩表的屬性實際上完全可以合並成一個表,共用一個主鍵即可;
一對多的表,可以設中間關聯表,也可以將關聯表並入「多」這頭;若設獨立關聯表,則可引入「多」這頭的主鍵作為其主鍵,也可另立主鍵,並將「一」和「多」兩表的主鍵作為關聯表的外鍵;
多對多的表,則必須設中間關聯表,關聯表設獨立主鍵,並引入兩個「多」頭的表的主鍵作為關聯表的外鍵。
這是上述三種關系表在鍵處理上的基本原則。
範式還是要遵循的,這套理論還是科學合理的。不要相信反範式設計,反範式設計在規模龐大時,數據冗餘多,編碼及維護會變得困難,萬一考慮漏掉的將導致數據不一致,甚至釀成災難。嚴格按照範式理論來設計資料庫,將使你編碼及維護時少操很多心。
一般來說,先進行需求分析,然後畫出數據流圖,然後再根據數據流圖畫出ER圖,然後再根據ER圖創建各種表。表是根據ER圖來創建的,表設計的合不合理,關鍵是ER圖抽像的合不合理。在抽像ER圖時,一般遵循這樣的原則:
能用1對1的,就不用1對多;能用1對多的,就不用多對多,往簡單化方向靠;
能當屬性處理的,盡量當屬性,而不是當實體處理去另立新表,這樣可使問題簡化。
把意義相近聯系緊密的屬性放在一張表內,而不是拆在多張表中。
看了一下你上述幾張表,我認為不合理,戶主是人,家庭成員也是人,把他們分在戶主表和家庭成員表中不合理,他們是同一類的,宜合在一張家庭成員表中,並增加一個標志性欄位,以指明哪個人是戶主。另外,宜建立一張地址表,以取代戶主表,地址表中宜指明鄉場鎮、村巷道、幾區、門牌號等與地址關系緊密的屬性,把戶籍、聯系方式、戶主等欄位拿走,他們不是地址屬性,這幾個宜放在成員關系表中,戶籍是人的屬性,並非地址的屬性,聯系方式就更明顯了,要聯系的是人,而不是地址。
很明顯,地址和家庭成員是一對多關系,一個地址同時可以住著多個成員,而一個成員同時只能住一個地址,這樣,設計成地址表和家庭成員表之後,要在家庭成員表中再加一個地址外鍵欄位,把地址表的主鍵當作家庭成員表的外鍵填入,這樣,成員表中的每個人都可以通過地址外鍵欄位到地址表中找到其所住地址。另外,成員表中也指明了哪個人是戶主,也指明了每個人的戶籍和聯系方式,這些信息你都可以找得到。
10. 如何用mysql設計表
設計表。。
你這個問題不清楚,我當你是設計資料庫把:
最簡單的一句話:版數據權庫內數據冗餘(重復的數據)越少,說明資料庫越好。
http://ke..com/view/402020.html?wtp=tt
這是資料庫中的範式,你可以看看
我舉個例子把:
學生表裡有學號,姓名,班級等欄位
假設學生表中有48為同學的班級是高一(1),
可是學生表中的班級是高一(2)班。
如果要修改,需要修改多少條?
答案是:48條。
要是這樣子呢:
學生表的班級存放的是班級編號(班級表主鍵,學生表外鍵(外鍵就是外表的主鍵))
班級表:班級編號,班級名稱
這樣,我們只要把班級表的名稱改改就行了。(也就改1條記錄)