重慶安菲科技軟件開發公司
18696588163 18696588163
軟件開發 APP開發 微信/小程序開發 大(dà)型電商平台開發 數據挖掘
18696588163 18696588163
軟件開發 APP開發 微信/小程序開發 大(dà)型電商平台開發 數據挖掘

軟件開發公司 > 動态 > 常見問題

Oracle數據庫的(de)幾種設計規範-重慶安菲科技軟件開發

常見問題 - 2019 - 10 - 29 Oracle 數據庫 數據庫設計

    一般情況下(xià),可(kě)以從兩個(gè)方面來(lái)判斷數據庫是否設計的(de)比較規範,1是看是否擁有大(dà)量的(de)窄表,2是寬表的(de)數量是否足夠的(de)少,如果符合這(zhè)兩個(gè)條件,則可(kě)以說明(míng)這(zhè)個(gè)數據庫的(de)設計水(shuǐ)平還(hái)是比較高(gāo)的(de),當然這(zhè)是兩個(gè)表面上的(de)指标,爲了(le)達到數據庫設計規範的(de)要求,一般來(lái)說,需要符合以下(xià)幾個(gè)要求。

    1.  表中要避免可(kě)爲空的(de)列:
    雖然表中允許有空列,但是,空字段是一種比較特殊的(de)數據類型,數據庫在處理(lǐ)的(de)時(shí)候 需要進行特殊的(de)處理(lǐ),這(zhè)樣的(de)話(huà),就會增加數據庫處理(lǐ)記錄的(de)複雜(zá)性,當表中要比較多(duō)的(de)空字段時(shí),在同等條件下(xià),數據庫處理(lǐ)的(de)性能會降低許多(duō),所以,雖然在數據庫表的(de)設計的(de)時(shí)候,允許表中具有空字段,但是,我們應該盡量避免,若的(de)确需要的(de)話(huà),可(kě)以通(tōng)過一些折中的(de)方式,來(lái)處理(lǐ)這(zhè)些空字段,讓他(tā)對(duì)數據庫性的(de)影(yǐng)響降到最低。
    通(tōng)過設置默認值的(de)形式,來(lái)避免空字段的(de)産生,如一個(gè)商城(chéng)VIP系統,有的(de)時(shí)候身份證号字段可(kě)以爲空,因爲不是每個(gè)人(rén)都能記得(de)住身份證号的(de),辦理(lǐ)業務時(shí)身份證沒帶身上不能及時(shí)提供,因此身份證号碼字段可(kě)以爲空,滿足這(zhè)些特殊需求,但是,在數據庫設計的(de)時(shí)候,就要做(zuò)一些處理(lǐ)了(le),如果用(yòng)戶沒有輸入的(de)時(shí)候,把這(zhè)個(gè)字段的(de)val默認值改爲0/1,這(zhè)樣能避免空字段的(de)産生。若是一張表中,允許爲空的(de)列比較多(duō),接近全部列數的(de)三分(fēn)之一,而且,這(zhè)些列在大(dà)部分(fēn)情況下(xià),都是可(kě)有可(kě)無的(de),如果數據庫管理(lǐ)員(yuán)遇到這(zhè)樣的(de)狀況,建議(yì)另外建立一張副表,以保存這(zhè)些列,然後通(tōng)過關鍵字把主表和(hé)副表關聯起來(lái),把數據存儲在兩個(gè)獨立的(de)表中是的(de)主表的(de)設計更爲簡單,同時(shí)也(yě)能夠滿足存儲空值的(de)信息需要。
    2. 表不應該要有重複的(de)Key或val:
    如果現在有一個(gè)進銷存系統,這(zhè)個(gè)系統中有一張成品基本信息表。這(zhè)個(gè)産品開發有時(shí)間可(kě)以是一個(gè)人(rén)完成。
    如進銷存管理(lǐ)中,還(hái)需要對(duì)客戶的(de)聯系人(rén)進行管理(lǐ),有時(shí)候,企業可(kě)能隻知道客戶一個(gè)采購(gòu)員(yuán)的(de)姓名,但是必要情況下(xià),企業需要對(duì)客戶的(de)采購(gòu)人(rén)員(yuán),倉庫人(rén)員(yuán),财務人(rén)員(yuán)共同進行管理(lǐ),因爲在訂單上,可(kě)能需要填入采購(gòu)代表的(de)名字,在出貨單上,則需要填入倉庫管理(lǐ)人(rén)員(yuán)的(de)名字等等。
    爲解決這(zhè)個(gè)問題,有多(duō)個(gè)實現方式,但是,如果設計不會理(lǐ)的(de)話(huà),就會導緻重複的(de)val和(hé)key,如我們也(yě)可(kě)以這(zhè)麽設計。吧客戶信息,聯系人(rén)都放入同一張表中,爲了(le)解決多(duō)個(gè)聯系人(rén)問題,可(kě)以設置第一個(gè)聯系人(rén) 第一聯系人(rén)電話(huà) ,第二聯系人(rén) 第二聯系人(rén)電話(huà)等等,如果更多(duō)就會有更多(duō)字段加入。
    可(kě)是如果這(zhè)麽設計會有一系列問題,如客戶的(de)采購(gòu)員(yuán)流動性比較大(dà),一年有七八個(gè)采購(gòu)員(yuán),這(zhè)樣的(de)話(huà)在用(yòng)到這(zhè)樣的(de)設計就顯然不合理(lǐ)了(le)。所以,在數據庫設計的(de)時(shí)候要盡量避免這(zhè)種重複的(de)key或者val的(de)産生,如果用(yòng)到這(zhè)種情況,就需要改變一下(xià)策略,如:吧客戶聯系人(rén)另外設置一張表,然後通(tōng)過客戶ID把供應商信息表跟客戶聯系人(rén)信息連接起來(lái),就是說盡量把重複的(de)key放至到一張獨立的(de)表中進行管理(lǐ),然後通(tōng)過視圖或者其他(tā)手段把這(zhè)些獨立的(de)表關聯起來(lái)
    3. 表中記錄應該有一個(gè)标識符:
    在數據庫表設計的(de)時(shí)候,數據庫管理(lǐ)員(yuán)就應有個(gè)好習(xí)慣,用(yòng)一個(gè)ID号碼 标識進行記錄,而不是通(tōng)過名字 編号等字段對(duì)記錄進行區(qū)分(fēn),每個(gè)表都應該有一個(gè)id任何兩個(gè)記錄都不能共用(yòng)一個(gè)id值 另外 這(zhè)個(gè)id值最好有數據庫來(lái)進行自動管理(lǐ),而不要吧這(zhè)個(gè)任務給前台應用(yòng)程序,否則 很容易産生id值不統一的(de)情況
    4. 數據庫對(duì)象要有統一的(de)前綴名:
    一個(gè)比較複雜(zá)的(de)應用(yòng)系統,其對(duì)應的(de)數據表往往數以千計,鑰匙讓數據庫管理(lǐ)員(yuán)看到對(duì)象名就了(le)解這(zhè)個(gè)數據庫對(duì)象所起的(de)作用(yòng) 這(zhè)樣比較困難,而且在數據庫對(duì)象引用(yòng)的(de)時(shí)候,數據庫管理(lǐ)員(yuán)也(yě)會爲不能迅速找到數據對(duì)象對(duì)發愁。爲此在開發數據庫之前,最好花時(shí)間去制定一個(gè)數據庫的(de)對(duì)象的(de)前綴命名規範,
    如在設計數據庫時(shí)和(hé)前台應用(yòng)程序協商,确定合理(lǐ)的(de)命名規範,如和(hé)物(wù)料管理(lǐ)模塊相關的(de)表可(kě)以用(yòng)M爲前綴,而訂單管理(lǐ)相關的(de)就用(yòng)C作爲前綴,具體采用(yòng)什(shén)麽前綴就根據用(yòng)戶的(de)愛(ài)好,但是注意 這(zhè)個(gè)命名規範應該在數據庫管理(lǐ)員(yuán)和(hé)前台應用(yòng)程序開發者之間達成共識,并且嚴格暗戰這(zhè)個(gè)命名規範來(lái)定義對(duì)象名。
    其次 表 視圖 函數等較好也(yě)要有統一的(de)前綴,如視圖可(kě)以用(yòng)V爲前綴 函數用(yòng)F爲前綴 這(zhè)樣數據庫管理(lǐ)員(yuán)無論在日常管理(lǐ)還(hái)是對(duì)象引用(yòng)都能在最短的(de)時(shí)間找到自己需要的(de)對(duì)象。
    5. 盡量隻存儲單一實體類型數據:
    這(zhè)裏實體類型和(hé)數據類型不是一回事,要注意區(qū)分(fēn),這(zhè)裏講的(de)實體類型是指所需要描述對(duì)象的(de)本身 舉個(gè)例子 如現在有一個(gè)圖書(shū)館系統,有圖書(shū)基本信息,作者信息兩個(gè)實體對(duì)象,若用(yòng)戶要吧這(zhè)兩個(gè)實體對(duì)象信息放在同一張表中也(yě)可(kě)以,如果把表設計成圖書(shū)的(de)名字,作者等等如果這(zhè)樣設計的(de)話(huà),回給後續的(de)維護帶來(lái)麻煩
    如果後續有書(shū)出版時(shí),就需要爲每次出版的(de)圖書(shū)增加作者信息,這(zhè)無疑會增加額外的(de)存儲空間,也(yě)會增加記錄的(de)長(cháng)度,而且作者的(de)情況有變,如住址修改,這(zhè)樣還(hái)會修改每本書(shū)的(de)記錄,同屬若這(zhè)個(gè)作者的(de)數從庫中全部删除後,跟著(zhe)這(zhè)個(gè)作者的(de)信息也(yě)就沒了(le)很明(míng)顯這(zhè)不符合數據庫設計規範要求。
    遇到這(zhè)種情況 建議(yì)把上面的(de)這(zhè)張表分(fēn)爲三個(gè)獨立的(de)表,分(fēn)别爲圖書(shū)基本表 ,作者表 圖書(shū)合作者對(duì)應表等等 這(zhè)樣設計 在遇到問題也(yě)能迎刃而解。
  重慶安菲科技軟件開發具有多(duō)類産品的(de)研發和(hé)設計經驗,産品種類包括:電子商務、生活服務、金融服務、新媒體、教育教學、手機遊戲等多(duō)領域的(de)app應用(yòng)及組件,安菲科技以專業的(de)解決方案,快(kuài)速的(de)需求反應,靈活的(de)開發流程和(hé)細緻的(de)客戶服務,爲企業提供全方位的(de)移動應用(yòng)開發,推廣運營服務。近年來(lái)近百家國内外各行各業的(de)客戶,緻力于想客戶所想的(de)原則,努力爲客戶提供更進準更完善的(de)移動互聯網應用(yòng)及解決方案。

下(xià)一章(zhāng):前端框架vue的(de)開發工具有哪些,那個(gè)更合适?-重慶軟件開發
软件开发
關于安菲科技

安菲科技遵循嚴格的(de)質量和(hé)安全标準, 實施嚴密的(de)安全措施, 擁有成熟可(kě)靠的(de)管理(lǐ)和(hé)開發流程, 公司憑借多(duō)年的(de)行業積累、深厚的(de) 行業專長(cháng)和(hé)成熟的(de)行業實踐,爲客戶持續創造關鍵價值。我們始終關 注前沿技術,保持國際領先的(de)眼界和(hé)技術儲備。公司自 成立以來(lái), 在團隊成員(yuán)的(de)共同努力下(xià),已經成功服務于上百家企業,其中包括 我愛(ài)我家、聯東集團、優财CMA、5100、奔馳、華爲、伊利、寶馬、 迪思公關、航天國旅、HOTWIND、重慶電通(tōng)等衆多(duō)知名企業。

咨詢熱(rè)線:18696588163

推薦閱讀

開發一套軟件之前需要做(zuò)哪些事情?重慶軟件開發公司 Tag: app開發 小程序開發 軟件開發 Java軟件開發技術的(de)特點有哪些?重慶軟件開發公司 Tag: 軟件開發 小程序開發 app開發 怎樣能讓APP軟件通(tōng)過IOS審核-重慶軟件開發公司 Tag: app開發 重慶軟件開發 軟件開發公司 重慶軟件開發公司web網站開發過程中需要注意的(de)問題-重慶安菲科技 Tag: 重慶軟件開發 重慶網站開發 軟件開發公司 重慶軟件開發公司手機App爲什(shén)麽這(zhè)麽多(duō)?重慶安菲科技 Tag: 重慶軟件開發 軟件開發公司 重慶app開發 重慶軟件開發ERP系統開發成功上線實施的(de)幾個(gè)要素?重慶安菲科技 Tag: 重慶軟件開發 app開發公司 軟件開發公司 手機軟件開發商是怎麽賺錢的(de)?重慶軟件開發公司安菲科技 Tag: 重慶軟件開發 軟件外包公司 APP開發 重慶軟件開發、CRM系統成品和(hé)軟件定制那個(gè)好?重慶軟件開發公司 Tag: 重慶軟件開發 CRM系統開發 軟件開發外包 視頻(pín)監控app開發哪家好?視頻(pín)監控APP解決方案-重慶軟件開發公司 Tag: 軟件開發解決方案 軟件定制

提交需求,獲取工期與報價

立即咨詢