Żbalji Komuni Magħmulin fid-Disinn ta 'Database

Kemm jekk qed taħdem b'dejtabejż li fiha mijiet ta 'rekords jew f'miljuni ta' rekords, id-disinn xieraq tad-database huwa dejjem importanti. Mhux biss ser tagħmel l-irkupru ta 'l-informazzjoni ferm aktar faċli, se tissimplifika wkoll l-espansjoni tad-database fil-futur. Sfortunatament, huwa faċli li taqa 'f'nases ftit li jistgħu jagħmlu l-affarijiet diffiċli fil-futur.

Hemm kotba sħaħ bil-miktub dwar is-suġġett tan-normalizzazzjoni ta 'database, imma jekk inti sempliċiment tevita dawn l-iżbalji komuni, inti tkun fit-triq it-tajba għal disinn ta' database tajjeb.

Żball ta 'Database Nru. 1: Oqsma li Jirrepetu f'Tabella

Regola ġenerali bażika għal disinn ta 'database tajjeb hija li tirrikonoxxi d-data li tirrepeti u li tpoġġi dawk il-kolonni ripetuti fit-tabella tagħhom stess. L-oqsma li jirrepetu f'tabella huma komuni għal dawk li ġejjin mid-dinja ta 'spreadsheets, iżda filwaqt li spreadsheets għandhom it-tendenza li jkunu ċatti skont id-disinn, id-databases għandhom ikunu relazzjonali. Huwa simili li jmorru minn 2D sa 3D.

B'xorti tajba, oqsma ripetittivi huma ġeneralment faċli biex isiru spot. Agħti ħarsa lejn din it-tabella:

OrderID Prodott1 Prodott2 Prodott3
1 Teddy Bears Jelly Beans
2 Jelly Beans

X'jiġri meta ordni fiha erba 'prodotti? Irridu nżidu qasam ieħor mat-tabella biex tappoġġja aktar minn tliet prodotti. U jekk konna bnew applikazzjoni tal-klijent madwar il-mejda biex tgħinna d-data tal-input, jista 'jkollok bżonn timmodifikaha mal-qasam il-ġdid tal-prodott. U kif insibu l-ordnijiet kollha ma 'Jellybeans fl-ordni? Inkunu sfurzati li nittrattaw kull qasam tal-prodott fit-tabella b'dikjarazzjoni SQL li tista 'tidher bħal: SELECT * MINN Prodotti DAWN Prodott1 =' Jelly Beans 'JEW Prodott2 =' Jelly Beans 'JEW Prodott3 =' Jelly Beans '.

Minflok ma jkollna tabella waħda li tgħodd l-informazzjoni kollha flimkien, għandna jkollna tliet tabelli li kull waħda għandha biċċa informazzjoni distinta. F'dan l-eżempju, nixtiequ tabella ta 'Ordnijiet b'informazzjoni dwar l-ordni nnifisha, tabella tal-Prodotti bil-prodotti kollha tagħna u pillola tal-Produtturi li marbuta prodotti mal-ordni.

OrderID CustomerID Data tal-Ordni Totali
1 7 1/24/17 19.99
2 9 1/25/17 24.99
ProductID Prodott Count
1 Teddy Bears 1
2 Jelly Beans 100
ProductOrderID ProductID OrderID
101 1 1
102 2 1

Avviż kif kull tabella għandha l-qasam ID uniku tagħha stess. Din hija ċ-ċavetta ewlenija. Aħna ninkludu t-tabelli bl-użu ta 'valur primarju ewlieni bħala ċavetta barranija f'tabella oħra. Aqra iktar dwar ċwievet primarji u ċwievet barranin.

Żball ta 'Database Nru 2: Inkorporazzjoni ta' Tabella f'Tabella

Dan huwa żball komuni ieħor, iżda mhux dejjem jispikka daqs oqsma ripetittivi. Meta tfassal database, trid tiżgura li d-dejta kollha f'tabella tirrelata għaliha nfisha. Huwa bħal dik il-logħba tat-tfal dwar kif tinduna dak li hu differenti. Jekk għandek banana, frawli, ħawħ u sett tat-televiżjoni, is-sett tat-televiżjoni x'aktarx jappartjeni x'imkien ieħor.

Fl-istess linji, jekk għandek tabella ta 'nies tal-bejgħ, l-informazzjoni kollha f'dik it-tabella għandha tkun relatata speċifikament ma' dik il-persuna tal-bejgħ. Kwalunkwe informazzjoni żejda li mhix unika għal dik il-persuna tal-bejgħ tista 'tappartjeni x'imkien ieħor fid-database tiegħek.

SalesID L-ewwel Aħħar Indirizz Numru tat-telefon Uffiċċju UffiċċjuNumru
1 Sam Elliot 118 Main St, Austin, TX (215) 555-5858 Austin Downtown (212) 421-2412
2 Alice Smith 504 2nd Street, New York, NY (211) 122-1821 New York (Lvant) (211) 855-4541
3 Joe Parroċċa 428 Aker St, Austin, TX (215) 545-5545 Austin Downtown (212) 421-2412

Filwaqt li din it-tabella tista 'tidher li hija kollha relatata mal-bejjiegħ individwali, fil-fatt għandha tabella integrata fit-tabella. Avviż kif l-Uffiċċju u l-Uffiċċju Numri jirrepetu b '"Austin Downtown". X'jiġri jekk jinbidel numru tat-telefon tal-uffiċċju? Ikollok bżonn taġġorna sett sħiħ ta 'dejta għal bdil wieħed ta' informazzjoni, li qatt mhuwa ħaġa tajba. Dawn l-oqsma għandhom jitpoġġew fuq it-tabella tagħhom stess.

SalesID L-ewwel Aħħar Indirizz Numru tat-telefon OfficeID
1 Sam Elliot 118 Main St, Austin, TX (215) 555-5858 1
2 Alice Smith 504 2nd Street, New York, NY (211) 122-1821 2
3 Joe Parroċċa 428 Aker St, Austin, TX (215) 545-5545 1
OfficeID Uffiċċju UffiċċjuNumru
1 Austin Downtown (212) 421-2412
2 New York (Lvant) (211) 855-4541

Dan it-tip ta 'disinn jagħtik ukoll il-ħila li żżid informazzjoni addizzjonali mal-mejda tal-Uffiċċju mingħajr ma toħloq ħmarillejl ta' eki mhux mixtieqa fit-tabella tal-persuna tal-bejgħ. Immaġina kemm xogħol ikun li sempliċement iżżomm kont tal-indirizz tat-triq, il-belt, l-istat u l-kodiċi zip jekk dik l-informazzjoni kollha kienet fit-tabella tal-persuna tal-bejgħ!

Żball ta 'Database Nru. 3: Tqegħid ta' Żewġ Biċċiet ta 'Informazzjoni jew Aktar f'Kampu Uniku

L-inkorporazzjoni tal-informazzjoni tal-uffiċċju fit-tabella tal-bejgħ ma kinitx l-unika problema b'dik id-database. L-ispazju ta 'l-indirizz kien fih tliet biċċiet ta' informazzjoni: l-indirizz tat-triq, il-belt u l-istat. Kull qasam fid-database għandu jkun fih biss biċċa waħda ta 'informazzjoni. Meta jkollok biċċiet ta 'informazzjoni multipli f'qasam wieħed, jista' jsir aktar diffiċli li ssir mistoqsija dwar id-database għall-informazzjoni.

Per eżempju, dak li kieku ridna nagħmlu mistoqsija fuq in-nies tal-bejgħ kollha minn Austin? Jeħtieġ li nfittxu fil-qasam tal-indirizz, li mhux biss huwa ineffiċjenti, iżda jista 'jirritorna informazzjoni ħażina. Wara kollox, x'jiġri jekk xi ħadd għex fit-triq Austin f'Portland, Oregon?

Hawnhekk tidher it-tabella:

SalesID L-ewwel Aħħar Indirizz 1 Indirizz 2 Belt Stat Zip Telefon
1 Sam Elliot 118 Main St Austin TX 78720 2155555858
2 Alice Smith 504 It-2 st New York NY 10022 2111221821
3 Joe Parroċċa 428 Aker St Apt 304 Austin TX 78716 2155455545

Hemm ftit affarijiet li wieħed għandu jinnota hawn. L-ewwelnett, "Indirizz 1" u "Indirizz 2" jidhru li jaqgħu taħt l-iżball tar-ripetittivi.

Madankollu, f'dan il-każ qed jirreferu għal biċċiet ta 'dejta separati li għandhom x'jaqsmu direttament mal-persuna tal-bejgħ aktar milli grupp ripetut ta' dejta li għandha tidher fit-tabella tagħha stess.

Ukoll, bħala żball ta 'bonus biex jiġi evitat, avviż kif il-formatting għan-numru tat-telefown ġie mqaxxar barra mit-tabella. Għandek tevita li taħżen il-format tal-oqsma meta jkun possibbli. Fil-każ ta 'numri tat-telefon, hemm diversi modi kif in-nies jiktbu numru tat-telefon: 215-555-5858 jew (215) 555-5858. Dan jagħmel it-tiftix għal persuna tal-bejgħ bin-numru tat-telefon tagħhom jew billi tagħmel tfittxija ta 'nies tal-bejgħ fl-istess kodiċi taż-żona aktar diffiċli.

Żball ta 'Database Nru. 4: Ma Jintużax Ewlenin Primarja korretta

Fil-biċċa l-kbira tal-każijiet, tkun trid tuża numru ta 'inkrement awtomatikament jew xi numru iġġenerat ieħor jew alfanumeriku għall-kodiċi primarju tiegħek. Għandek tevita li tuża kwalunkwe informazzjoni attwali għall-kodiċi primarju anke jekk tinstema 'li tkun tagħmel identifikatur tajjeb.

Per eżempju, aħna kull wieħed għandna n-numru tas-sigurtà soċjali individwali tagħna stess, sabiex tuża n-numru tas-sigurtà soċjali għal database ta 'impjegat jista' ħoss bħal idea tajba. Imma filwaqt li rari, huwa possibbli li anke n-numru tas-sigurtà soċjali jinbidel, u aħna qatt ma rridu nagħmlu l-bidla ewlenija tagħna.

U dik hija l-problema bl-użu tat-tagħrif attwali bħala valur ewlieni. Jista 'jinbidel.

Żball ta 'Database Nru. 5: Mhux Tuża Konferenza Naming

Dan jista 'ma jkunx ħoss bħal big deal meta tibda l-ewwel tfassil tad-database tiegħek, iżda ladarba tasal sal-punt li jkollok mistoqsijiet bil-miktub kontra d-database sabiex tkun irkuprata l-informazzjoni, li jkollok konvenzjoni ta' ismijiet tgħinek kif timmemorizza ismijiet ta 'oqsma.

Immaġina kemm aktar diffiċli dak il-proċess ikun jekk l-ismijiet ġew maħżuna bħala FirstName, LastName f'tabella waħda u first_name, last_name f'tabella oħra.

Iż-żewġ konvenzjonijiet ta 'ismijiet l-aktar popolari huma kapitalizzazzjoni ta' l-ewwel ittra ta 'kull kelma fil-qasam jew is-separazzjoni ta' kliem bl-użu ta 'enfasi. Tista 'tara wkoll xi żviluppaturi li jikkapitalizzaw l-ewwel ittra ta' kull kelma ħlief l-ewwel kelma: firstName, lastName.

Int trid ukoll tiddeċiedi dwar l-użu ta 'ismijiet tal-mejda singulari jew l-ismijiet tal-mejda plural. Hija tabella Ordni jew Tabella Ordnijiet? Hija tabella tal-Klijent jew tabella tal-Klijenti? Għal darb'oħra, ma tridx tkun imwaħħal ma 'tabella Ordni u tabella tal-Klijenti.

Il-konvenzjoni tal-ismijiet li tagħżel mhix daqshekk importanti daqs il-proċess li fil-fatt tagħżel u żżomm ma 'konvenzjoni tal-ismijiet.

Żball ta 'Database Nru. 6: Indiċjar Indebitu

L-indiċjar huwa wieħed mill-aktar affarijiet diffiċli biex jinkiseb id-dritt, speċjalment għal dawk ġodda fid-disinn ta 'database. Iċ-ċwievet primarji u ċ-ċwievet barranin kollha għandhom ikunu indiċizzati Dawn huma liema tabelli ta 'rabta flimkien, hekk mingħajr indiċi, se tara prestazzjoni fqira ħafna mid-database tiegħek.

Iżda dak li ħafna drabi ma ntlaħqux huma l-oqsma l-oħra. Dawn huma l-oqsma "DIN". Jekk ta 'sikwit tiddejjaq it-tfittxija tiegħek billi tuża qasam f'klawżola WHERE, trid taħseb biex tqiegħed indiċi fuq dak il-qasam. Madankollu, ma tridx tindika żżejjed it-tabella, li tista 'wkoll tweġġa' r-rendiment.

Kif tiddeċiedi? Dan huwa parti mill-arti tad-disinn ta 'database. M'hemm l-ebda limitu iebes fuq kemm indiċijiet għandek tpoġġi fuq mejda. Primarjament, trid tindika kwalunkwe qasam li jintuża ta 'spiss f'Klawsola fejn. Aqra iktar dwar l-indiċjar sewwa tad-database tiegħek.