日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何設(shè)計(jì)高效的數(shù)據(jù)庫表結(jié)構(gòu)? 數(shù)據(jù)庫設(shè)計(jì)建議和技巧 (回復(fù)數(shù)據(jù)庫表數(shù)據(jù)庫設(shè)計(jì))

如何設(shè)計(jì)高效的數(shù)據(jù)庫表結(jié)構(gòu)? 數(shù)據(jù)庫設(shè)計(jì)建議和技巧

創(chuàng)新互聯(lián)建站是一家專業(yè)提供尼瑪企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為尼瑪眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

數(shù)據(jù)庫是現(xiàn)代企業(yè)不可或缺的基礎(chǔ)設(shè)施之一,其正確的設(shè)計(jì)和實(shí)施至關(guān)重要。設(shè)計(jì)高效的數(shù)據(jù)庫表結(jié)構(gòu)是數(shù)據(jù)庫設(shè)計(jì)中最重要的部分之一。高效的數(shù)據(jù)庫表結(jié)構(gòu)能大大提高數(shù)據(jù)庫的可靠性和性能。

本文旨在為讀者提供一些數(shù)據(jù)庫設(shè)計(jì)建議和技巧,幫助讀者設(shè)計(jì)高效的數(shù)據(jù)庫表結(jié)構(gòu)。

1.設(shè)計(jì)規(guī)范和標(biāo)準(zhǔn)化

規(guī)范和標(biāo)準(zhǔn)化是數(shù)據(jù)庫設(shè)計(jì)的基礎(chǔ)。在設(shè)計(jì)數(shù)據(jù)庫表結(jié)構(gòu)時,應(yīng)該遵循一系列標(biāo)準(zhǔn)和規(guī)范,這些標(biāo)準(zhǔn)和規(guī)范包括但不限于:

– 表名和字段名應(yīng)該易于理解和表達(dá)含義;

– 表和字段應(yīng)該使用小寫字母和下劃線命名;

– 表中應(yīng)該有一個唯一標(biāo)識符字段;

– 表中應(yīng)該有一個主鍵字段;

– 表間應(yīng)該使用外鍵字段進(jìn)行關(guān)聯(lián);

– 應(yīng)該盡可能使用數(shù)據(jù)庫約束(主鍵、唯一鍵、外鍵、默認(rèn)值、非空值、檢查約束等)來保證數(shù)據(jù)的完整性和準(zhǔn)確性;

– 不使用特殊字符或關(guān)鍵字作為表名或字段名;

2.避免過度設(shè)計(jì)

過度設(shè)計(jì)是數(shù)據(jù)庫設(shè)計(jì)中一種常見的問題,它會導(dǎo)致數(shù)據(jù)庫結(jié)構(gòu)復(fù)雜,難以維護(hù)和理解。因此,數(shù)據(jù)庫設(shè)計(jì)師必須避免過度設(shè)計(jì)。

在設(shè)計(jì)數(shù)據(jù)庫時,應(yīng)該始終記住以下原則:

– 最小化表的數(shù)量;

– 最小化表中字段的數(shù)量;

– 最小化字段中的數(shù)據(jù)類型;

– 最小化索引的數(shù)量。

3.選擇合適的數(shù)據(jù)類型

選擇合適的數(shù)據(jù)類型對于提高數(shù)據(jù)庫性能非常重要。當(dāng)選擇數(shù)據(jù)類型時,應(yīng)該考慮以下因素:

– 數(shù)據(jù)類型應(yīng)該盡可能小。使用較小的數(shù)據(jù)類型可以節(jié)省存儲空間并提高查詢的速度。例如,如果需要存儲年份,使用INT更大只需要4個字節(jié)。

– 應(yīng)該使用正確的數(shù)據(jù)類型。當(dāng)涉及到日期和時間時,使用日期和時間類型,而不是字符串類型。當(dāng)涉及到金額時,使用DECIMAL而不是FLOAT類型,因?yàn)镈ECIMAL能夠提供更高的精度。

– 應(yīng)該使用統(tǒng)一的數(shù)據(jù)類型。同一表中,應(yīng)該使用相同的數(shù)據(jù)類型來存儲相同類型的數(shù)據(jù)。

4.使用索引

索引對于提高數(shù)據(jù)庫查詢速度非常重要。當(dāng)使用索引時,應(yīng)該考慮以下因素:

– 應(yīng)該只在需要時才使用索引。使用索引會增加數(shù)據(jù)插入和更新的時間,因此應(yīng)該僅在查詢過程中需要它們時使用。

– 應(yīng)該僅對查詢頻繁的列使用索引。

– 應(yīng)該僅為小型表使用索引。大型表的索引會占用大量存儲空間并且降低查詢性能。

– 應(yīng)該使用聯(lián)合索引來提高性能。

5.正規(guī)化數(shù)據(jù)表

正規(guī)化是減少數(shù)據(jù)冗余和維護(hù)數(shù)據(jù)完整性的過程。在設(shè)計(jì)數(shù)據(jù)庫表結(jié)構(gòu)時,應(yīng)該遵循正規(guī)化的規(guī)則。

正規(guī)化的目標(biāo)是將數(shù)據(jù)劃分為多個相互關(guān)聯(lián)的表,每個表僅包含其實(shí)體的唯一信息。不同的表之間使用主鍵和外鍵進(jìn)行關(guān)聯(lián)。

在進(jìn)行正規(guī)化時,應(yīng)該遵循以下原則:

– 消除重復(fù)的數(shù)據(jù);

– 將表拆分成相對較小的表;

– 最小化對重復(fù)數(shù)據(jù)的更新操作;

– 確保每個表只包含唯一數(shù)據(jù)。

6.使用存儲過程和觸發(fā)器

存儲過程和觸發(fā)器旨在為數(shù)據(jù)庫提供額外的安全性和功能。存儲過程是一組SQL語句的,可以在需要時進(jìn)行查詢。觸發(fā)器是與表相關(guān)聯(lián)的一些邏輯,只要表中的一些操作發(fā)生,就會自動啟動。

使用存儲過程和觸發(fā)器可以提高數(shù)據(jù)庫的性能和可維護(hù)性。

7.備份和恢復(fù)

備份和恢復(fù)是數(shù)據(jù)庫設(shè)計(jì)中最重要的部分之一。備份和恢復(fù)可以在數(shù)據(jù)庫出現(xiàn)故障時幫助恢復(fù)數(shù)據(jù)庫。

使用備份和恢復(fù)時,應(yīng)該考慮以下因素:

– 應(yīng)該定期備份數(shù)據(jù)庫,以確保在系統(tǒng)故障時能夠快速進(jìn)行恢復(fù);

– 應(yīng)該進(jìn)行備份測試,以確保備份是可用的;

– 應(yīng)該在服務(wù)器上多個位置存儲備份,以確保不會丟失所有備份;

– 應(yīng)該測試恢復(fù)過程,以確保在需要時可以正確恢復(fù)數(shù)據(jù)庫。

結(jié)論

數(shù)據(jù)庫設(shè)計(jì)是企業(yè)基礎(chǔ)設(shè)施的重要組成部分。設(shè)計(jì)高效的數(shù)據(jù)庫表結(jié)構(gòu)可以提高數(shù)據(jù)庫的可靠性和性能。本文提供了一些數(shù)據(jù)庫設(shè)計(jì)建議和技巧,幫助讀者設(shè)計(jì)高效的數(shù)據(jù)庫表結(jié)構(gòu)。通過遵循這些建議和技巧,可以設(shè)計(jì)出可維護(hù)且高效的數(shù)據(jù)庫表結(jié)構(gòu)。

相關(guān)問題拓展閱讀:

  • 數(shù)據(jù)庫設(shè)計(jì)的六個階段是什么?
  • 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì),常見的數(shù)據(jù)庫管理系統(tǒng)

數(shù)據(jù)庫設(shè)計(jì)的六個階段是什么?

數(shù)據(jù)庫設(shè)計(jì)過程分為以下六個階段:

1、需求分析階段

準(zhǔn)確理解和分析用戶需求(包括數(shù)據(jù)和處理),它是整個設(shè)計(jì)過程的基礎(chǔ),也是最困難、最耗時的一步。

2、概念結(jié)構(gòu)設(shè)計(jì)階段

是整個數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,通過對用戶需求的集成、歸納和抽象,形成了一個獨(dú)立于特定數(shù)據(jù)庫管理系統(tǒng)的概念模型。

3、邏輯結(jié)構(gòu)設(shè)計(jì)階段

將概念結(jié)構(gòu)轉(zhuǎn)換為DBMS支持的數(shù)據(jù)模型,對其進(jìn)行優(yōu)化。

4、數(shù)據(jù)庫物理設(shè)計(jì)階段

為邏輯數(shù)據(jù)模型選擇最適合應(yīng)用程序環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。

5、數(shù)據(jù)庫實(shí)現(xiàn)階段

根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果,使用數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言、工具和主機(jī)語言,建立數(shù)據(jù)庫,編寫調(diào)試應(yīng)用程序,組織數(shù)據(jù)倉庫,并進(jìn)行試運(yùn)行。

6、數(shù)據(jù)庫運(yùn)行維護(hù)階段

數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)試運(yùn)行后可投入正式運(yùn)行,在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中,需要不斷地對其進(jìn)行評估、調(diào)整和修改。

注:在設(shè)計(jì)過程中,將數(shù)據(jù)庫的設(shè)計(jì)與數(shù)據(jù)庫中數(shù)據(jù)處理的設(shè)計(jì)緊密結(jié)合起來,在每個階段同時對這兩個方面的要求進(jìn)行分析、抽象、設(shè)計(jì)和實(shí)現(xiàn),相互借鑒和補(bǔ)充,從而完善這兩個方面的設(shè)計(jì)。

擴(kuò)展資料:

數(shù)據(jù)庫設(shè)計(jì)技術(shù)

1、清晰的用戶需求:作為計(jì)算機(jī)軟件開發(fā)的重要基礎(chǔ),數(shù)據(jù)庫設(shè)計(jì)直接反映了用戶的需求。數(shù)據(jù)庫必須與用戶緊密溝通,緊密結(jié)合用戶需求。在定義了用戶開發(fā)需求之后,設(shè)計(jì)人員還需要反映具體的業(yè)務(wù)關(guān)系和流程。

2、注意數(shù)據(jù)維護(hù):設(shè)計(jì)面積過大、數(shù)絕遲御據(jù)過于復(fù)雜是數(shù)據(jù)庫設(shè)計(jì)中常見的問題,設(shè)計(jì)人員應(yīng)注意數(shù)據(jù)維護(hù)。旦碰

3、增加命名規(guī)范化:命名數(shù)據(jù)庫程序和文件非常重要,不僅要避免重復(fù)的名稱,還要確保數(shù)據(jù)處于平衡狀態(tài)。為了降低檢索信息和資源的復(fù)雜度和難度,設(shè)計(jì)人員應(yīng)了解數(shù)據(jù)庫程序與文件之并巖間的關(guān)系,并靈活使用大小寫字母命名。

4、充分考慮數(shù)據(jù)庫的優(yōu)化和效率:考慮到數(shù)據(jù)庫的優(yōu)化和效率,設(shè)計(jì)人員需要對不同表的存儲數(shù)據(jù)采用不同的設(shè)計(jì)方法。在設(shè)計(jì)中,還應(yīng)該使用最少的表和最弱的關(guān)系來實(shí)現(xiàn)海量數(shù)據(jù)的存儲。

5、不斷調(diào)整數(shù)據(jù)之間的關(guān)系:不斷調(diào)整和簡化數(shù)據(jù)之間的關(guān)系,可以有效減少設(shè)計(jì)與數(shù)據(jù)之間的聯(lián)系,進(jìn)而為維護(hù)數(shù)據(jù)之間的平衡和提高數(shù)據(jù)讀取效率提供保障。

6、合理使用索引:數(shù)據(jù)庫索引通常分為聚集索引和非聚集索引,這樣可以提高數(shù)據(jù)搜索的效率。

參考資料來源:

百度百科-數(shù)據(jù)庫設(shè)計(jì)

按照規(guī)轎中虛范設(shè)計(jì),我們將數(shù)據(jù)庫的設(shè)計(jì)過程分為六個階段培拆:

系統(tǒng)需求分析階段;

概念結(jié)構(gòu)設(shè)計(jì)階段;

邏輯結(jié)構(gòu)設(shè)計(jì)階段;

物理結(jié)構(gòu)設(shè)計(jì)階段;閉燃

數(shù)據(jù)庫實(shí)施階段;

數(shù)據(jù)庫運(yùn)行與維護(hù)階段;

數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì),常見的數(shù)據(jù)庫管理系統(tǒng)

一、數(shù)據(jù)場景 1、表結(jié)構(gòu)簡介 任何工具類的東西都是為了解決某個場景下的問題,比如Redis緩存系統(tǒng)熱點(diǎn)數(shù)據(jù),ClickHouse解決海量數(shù)據(jù)的實(shí)時分析,MySQL關(guān)系型數(shù)據(jù)庫存儲結(jié)構(gòu)化數(shù)據(jù)。數(shù)據(jù)的存儲則需要設(shè)計(jì)對應(yīng)的表結(jié)構(gòu),清楚的表結(jié)構(gòu),有助于快速開發(fā)業(yè)務(wù),和理解系統(tǒng)。表結(jié)構(gòu)的設(shè)計(jì)通常從下面幾個方面考慮:業(yè)務(wù)場景、設(shè)計(jì)規(guī)范、表結(jié)構(gòu)、字段屬性、數(shù)據(jù)管理。

2、用戶場景

例如存儲用戶基礎(chǔ)信息數(shù)據(jù),通常都會下面幾個相關(guān)表結(jié)構(gòu):用戶信息表、單點(diǎn)登錄表、狀態(tài)管理表、支付賬戶表等。

用戶信息表

存儲用戶三要素相關(guān)信息:姓名,手機(jī)號,身份證,登錄密碼,郵箱等。

CREATE TABLE `ms_user_center` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘用戶ID’, `user_name` varchar(20) NOT NULL COMMENT ‘用戶名’, `real_name` varchar(20) DEFAULT NULL COMMENT ‘真實(shí)姓名’, `pass_word` varchar(32) NOT NULL COMMENT ‘密碼’, `phone` varchar(20) NOT NULL COMMENT ‘手機(jī)號’, `email` varchar(32) DEFAULT NULL COMMENT ‘郵箱’, `head_url` varchar(100) DEFAULT NULL COMMENT ‘用戶頭像URL’, `card_id` varchar(32) DEFAULT NULL COMMENT ‘身份證號’, `user_sex` int(1) DEFAULT ‘1’ COMMENT ‘用戶性別:0-女,1-男’, `create_time` datetime DEFAULT NULL COMMENT ‘創(chuàng)建時間’, `update_time` datetime DEFAULT NULL COMMENT ‘更新時間’, `state` int(1) DEFAULT ‘1’ COMMENT ‘是否可用,0-不可用,1-可用’, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’用戶表’; 單點(diǎn)登錄表

用意是在多個業(yè)務(wù)系統(tǒng)中,用戶登錄一次就可以訪問所有相互信任的業(yè)務(wù)子系統(tǒng),是聚合業(yè)務(wù)平臺常用的解決方案。

CREATE TABLE `ms_user_sso` ( `user_id` int(11) NOT NULL COMMENT ‘用戶ID’, `sso_id` varchar(32) NOT NULL COMMENT ‘單點(diǎn)信息編號ID’, `sso_code` varchar(32) NOT NULL COMMENT ‘單點(diǎn)登錄碼,唯一核心標(biāo)識’, `log_ip` varchar(32) DEFAULT NULL COMMENT ‘登錄IP地址’, `create_time` datetime DEFAULT NULL COMMENT ‘創(chuàng)建時間’, `update_time` datetime DEFAULT NULL COMMENT ‘更新時間’, `state` int(1) DEFAULT ‘1’ COMMENT ‘是否可用,0-不可用,1-可用’, PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’用戶單點(diǎn)登錄表’; 狀態(tài)管理表

系統(tǒng)用戶在使用時候可能出現(xiàn)多個狀態(tài),例如賬戶凍結(jié)、密碼鎖定等,把狀態(tài)聚合到一起,可以更加方便的管理和驗(yàn)證。

CREATE TABLE `ms_user_status` ( `user_id` int(11) NOT NULL COMMENT ‘用戶ID’, `account_status` int(1) DEFAULT ‘1’ COMMENT ‘賬戶狀態(tài):0-凍結(jié),1-未凍結(jié)’, `real_name_status` int(1) DEFAULT ‘0’ COMMENT ‘實(shí)名認(rèn)證狀態(tài):0-未實(shí)名,1-已實(shí)名’, `pay_pass_status` int(1) DEFAULT ‘0’ COMMENT ‘支付密碼是否設(shè)置:0-未設(shè)置,1-設(shè)置’, `wallet_pass_status` int(1) DEFAULT ‘0’ COMMENT ‘錢包密碼是否設(shè)置:0-未設(shè)置,1-設(shè)置’, `wallet_status` int(1) DEFAULT ‘1’ COMMENT ‘錢包是否凍結(jié):0-凍結(jié),1-未凍結(jié)’, `email_status` int(1) DEFAULT ‘0’ COMMENT ‘郵箱狀態(tài):0-未激活,1-激活’, `message_status` int(1) DEFAULT ‘1’ COMMENT ‘短信提醒開啟:0-未開啟,1-開啟’, `letter_status` int(1) DEFAULT ‘1’ COMMENT ‘站內(nèi)信提醒開啟:0-未開啟,1-開啟’, `emailmsg_status` int(1) DEFAULT ‘0’ COMMENT ‘郵件提醒開啟:0-未開啟,1-開啟’, `create_time` datetime DEFAULT NULL COMMENT ‘創(chuàng)建時間’, `update_time` datetime DEFAULT NULL COMMENT ‘更新時間’, `state` int(1) DEFAULT ‘1’ COMMENT ‘是否可用,0-不可用,1-可用’, PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’用戶狀態(tài)表’; 支付賬戶表

用戶交易的核心表,存儲用戶相關(guān)的賬戶資金信息。

CREATE TABLE `ms_user_wallet` ( `wallet_id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘錢包ID’, `user_id` int(11) NOT NULL COMMENT ‘用戶ID’, `wallet_pwd` varchar(32) DEFAULT NULL COMMENT ‘錢包密碼’, `total_account` decimal(20,2) DEFAULT ‘0.00’ COMMENT ‘賬戶總額’, `usable_money` decimal(20,2) DEFAULT ‘0.00’ COMMENT ‘可用余額’, `freeze_money` decimal(20,2) DEFAULT ‘0.00’ COMMENT ‘凍結(jié)金額’, `freeze_time` datetime DEFAULT NULL COMMENT ‘凍結(jié)時間’, `thaw_time` datetime DEFAULT NULL COMMENT ‘解凍時間’, `create_time` datetime DEFAULT NULL COMMENT ‘創(chuàng)建時間’, `update_time` datetime DEFAULT NULL COMMENT ‘更新時間’, `state` int(1) DEFAULT ‘1’ COMMENT ‘是否可用,0-不可用,1-可用’, PRIMARY KEY (`wallet_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’用戶錢包’; 二、設(shè)計(jì)規(guī)范 1、涉及模塊

通過上面幾個表設(shè)計(jì)的案例,可以看到表設(shè)計(jì)關(guān)聯(lián)到數(shù)據(jù)庫的各個方面知識:數(shù)據(jù)類型,索引,編碼,存儲引擎等。表設(shè)計(jì)是一個很大的命題,不過也遵循一個基本規(guī)范:三范式。

2、三范式 基礎(chǔ)概念

一范式

表的列的具有原子性,不可再分解,即列的信息,不能分解,關(guān)系型數(shù)據(jù)庫MySQL、Oracle等自動的滿足。

二范式

每個事實(shí)的數(shù)據(jù)記錄只會出現(xiàn)一次, 不會冗余, 通常設(shè)計(jì)一個主鍵來實(shí)現(xiàn)。

三范式

要求一個表中不包含已經(jīng)存在于其它表的非主鍵信息,例如部門和員工的信息,員工表包含部門表的主鍵ID,則可以關(guān)聯(lián)獲取相關(guān)信息,沒必要在員工表保存相關(guān)信息。

優(yōu)缺點(diǎn)對比

范式化設(shè)計(jì)

范式化結(jié)構(gòu)設(shè)計(jì)通常更新快,因?yàn)槿哂鄶?shù)據(jù)較少,表結(jié)構(gòu)輕巧,也更好的寫入內(nèi)存中。但是查詢起來涉及到關(guān)聯(lián),代價非常高,非常損耗查詢性能。

反范式化設(shè)計(jì)

所有的數(shù)據(jù)都在一張表中,避免關(guān)聯(lián)查詢,索引的有效性更高,但是數(shù)據(jù)的冗余性極高。

建議結(jié)論

上述的兩種設(shè)計(jì)方式在實(shí)際開發(fā)中都是不存在的,在實(shí)際開發(fā)中都是混合使用。比如匯總統(tǒng)計(jì),緩存數(shù)據(jù),都會基于反范式化的設(shè)計(jì)。

三、字段屬性

合適的字段類型對于高性能來說非常重要,基本原則如下:簡單的類型占用資源更少;在可以正確存儲數(shù)據(jù)的情況下,選最小的數(shù)據(jù)類型。

1、數(shù)據(jù)類型選擇 整數(shù)類型

TINYINT、ALLINT、MEDIUMINT、INT、BIGINT,根據(jù)數(shù)據(jù)類型范圍合理選擇即可。

實(shí)數(shù)類型

FLOAT、DOUBLE、DECIMAL,建議資金貨幣相關(guān)類型使用高精度DECIMAL存儲,或者把數(shù)據(jù)成倍擴(kuò)大為整數(shù),采用BIGINT存儲,不過處理相對麻煩。

字符類型

CHAR、VARCHAR,長度不確定建議采用VARCHAR存儲,不過VARCHAR類型需要額外開銷記錄字符串長度。CHAR適合存儲短字符,或者定長字符串,例如MD5的加密結(jié)構(gòu)。

時間類型

DATETIME、TIMESTAMP,DATETIME保存大范圍的值,精度秒。TIMESTAMP以時間戳的格式,范圍相對較小,效率也相對較高,所以通常情況建議使用。

MySQL的字段類型有很多種,可以根據(jù)數(shù)據(jù)特性選擇合適的,這里只描述常見的幾種類型。

2、基礎(chǔ)用法操作 數(shù)據(jù)類型

修改字段類型

ALTER TABLE ms_user_sso MODIFY state CHAR(1) DEFAULT ‘0’ ; ALTER TABLE ms_user_sso MODIFY state INT(1) DEFAULT ‘1’ COMMENT ‘狀態(tài):0不可用,1可用’;

修改名稱位置

ALTER TABLE ms_user_sso CHANGE log_ip login_ip VARCHAR(32) AFTER update_time ; 索引使用

索引類型:主鍵索引,普通索引,唯一索引,組合索引,全文索引。這里演示普通索引的操作。MySQL的核心模塊,后續(xù)詳說。

添加索引

ALTER TABLE ms_user_wallet ADD INDEX user_id_index(user_id) ; CREATE INDEX state_index ON ms_user_wallet(state) ;

查看索引

SHOW INDEX FROM ms_user_wallet;

刪除索引

DROP INDEX state_index ON ms_user_wallet ;

修改索引

不具有真正意義上的修改,可以把原有的索引刪除之后,再次添加索引。

外鍵關(guān)聯(lián)

用處:外鍵關(guān)聯(lián)的作用保證多個數(shù)據(jù)表的數(shù)據(jù)一致性和完整性,建表時先有主表,后有從表;刪除數(shù)據(jù)表,需要先刪從表,再刪主表。復(fù)雜場景不建議使用,實(shí)際開發(fā)中用的也不多。

添加外鍵

ALTER TABLE ms_user_wallet ADD CONSTRAINT user_id_out_key FOREIGN KEY(user_id) REFERENCES ms_user_center(id) ;

刪除外鍵

ALTER TABLE ms_user_wallet DROP FOREIGN KEY user_id_out_key ; 四、表結(jié)構(gòu)管理 1、查看結(jié)構(gòu) DESC ms_user_status ; SHOW CREATE TABLE ms_user_status ; 2、字段結(jié)構(gòu) 添加字段 ALTER TABLE ms_user_status ADD `delete_time` datetime DEFAULT NULL COMMENT ‘刪除時間’ ; 刪除字段 ALTER TABLE ms_user_status DROP COLUMN delete_time ; 3、修改表名 ALTER TABLE ms_user_center RENAME ms_user_info ; 4、存儲引擎 存儲引擎 SELECT VERSION() ; SHOW ENGINES ;

MySQL 5.6 支持的存儲引擎有InnoDB、MyISAM、Memory、Archive、CSV、BLACKHOLE等。一般默認(rèn)使用InnoDB,支持事務(wù)管理。該模塊MySQL核心,后續(xù)詳解。

修改引擎

數(shù)據(jù)量大的場景下,存儲引擎修改是一個難度極大的操作,容易會導(dǎo)致表的特性變動,引起各種后續(xù)反應(yīng),后續(xù)會詳說。

ALTER TABLE ms_user_sso ENGINE = MyISAM ; 5、修改編碼

表字符集默認(rèn)使用utf8,通用,無亂碼風(fēng)險,漢字3字節(jié),英文1字節(jié),utf8mb4是utf8的超集,有存儲4字節(jié)例如表情符號時使用。

查看編碼 SHOW VARIABLES LIKE ‘character%’; 修改編碼 ALTER TABLE ms_user_sso DEFAULT CHARACTER SET utf8mb4; 五、數(shù)據(jù)管理 1、增刪改查

添加數(shù)據(jù)

INSERT INTO ms_user_sso ( user_id,sso_id,sso_code,create_time,update_time,login_ip,state ) VALUES ( ‘1’,’SSO’,’SSO’, ‘:56:57′,’:57:01′,’127.0.0.1′,’1′ );

更新數(shù)據(jù)

UPDATE ms_user_sso SET user_id = ‘1’,sso_id = ‘SSO’,sso_code = ‘SSO’, create_time = ‘:56:57’,update_time = ‘:57:01’, login_ip = ‘127.0.0.1’,state = ‘1’ WHERE user_id = ‘1’;

查詢數(shù)據(jù)

一般情況下都是禁止使用 select* 操作。

SELECT user_id,sso_id,sso_code,create_time,update_time,login_ip,state FROM ms_user_sso WHERE user_id = ‘1’;

刪除數(shù)據(jù)

DELETE FROM ms_user_sso WHERE user_id = ‘2’ ;

不帶where條件,就是刪除全部數(shù)據(jù)。原則上不允許該操作,優(yōu)化篇會詳解。TRUNCATE TABLE也是清空表數(shù)據(jù),但是占用的資源相對較少。

2、數(shù)據(jù)安全 不可逆加密

這類加密算法,多用來做數(shù)據(jù)驗(yàn)證操作,比如常見的密碼驗(yàn)證。

SELECT MD5(‘cicada’)=’94454b1241ad2cfbd0c44efda1b6b6ba’ ; SELECT SHA(‘cicada’)=’a2e4fd34e1d14015fc4dedc7d’; SELECT PASSWORD(‘ile’)=’*B4FB95D86DCFC3F33ADC742CD’ ; 可逆加密

安全性要求高的系統(tǒng),需要做三級等保,對數(shù)據(jù)的安全性極高,數(shù)據(jù)在存儲時必須加密入庫,取出時候需要解密,這些就需要可逆加密。

SELECT DECODE(ENCODE(‘123456′,’key_salt’),’key_salt’) ; SELECT AES_DECRYPT(AES_ENCRYPT(‘cicada’,’salt123′),’salt123′);

上述數(shù)據(jù)安全的管理,也可以基于應(yīng)用系統(tǒng)的服務(wù)(代碼)層進(jìn)行處理,相對專業(yè)的流程是從數(shù)據(jù)生成源頭處理,規(guī)避數(shù)據(jù)傳遞過程泄露,造成不必要的風(fēng)險。

回復(fù)數(shù)據(jù)庫表數(shù)據(jù)庫設(shè)計(jì)的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于回復(fù)數(shù)據(jù)庫表數(shù)據(jù)庫設(shè)計(jì),如何設(shè)計(jì)高效的數(shù)據(jù)庫表結(jié)構(gòu)? 數(shù)據(jù)庫設(shè)計(jì)建議和技巧,數(shù)據(jù)庫設(shè)計(jì)的六個階段是什么?,數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì),常見的數(shù)據(jù)庫管理系統(tǒng)的信息別忘了在本站進(jìn)行查找喔。

成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費(fèi)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營銷推廣服務(wù)眾多企業(yè)。電話:028-86922220


文章題目:如何設(shè)計(jì)高效的數(shù)據(jù)庫表結(jié)構(gòu)? 數(shù)據(jù)庫設(shè)計(jì)建議和技巧 (回復(fù)數(shù)據(jù)庫表數(shù)據(jù)庫設(shè)計(jì))
網(wǎng)頁URL:http://m.5511xx.com/article/dhhddjp.html