Fahadisoana iombonana natao tao amin'ny Database Design

Na miasa miaraka amin'ny rakitra iray izay mitahiry firaketana an-jatony na rakitsoratra an-tapitrisany ianao, dia zava-dehibe foana ny famolavolana drafitra. Tsy vitan'ny hoe mamerina mora kokoa ny fampahalalana azy io, fa hanatsara ny fanitarana ny banky amin'ny hoavy. Indrisy anefa fa mora ny mametraka lava vitsivitsy izay afaka mamorona zavatra sarotra amin'ny ho avy.

Misy boky manontolo nosoratana momba ny fampiendrehana tahirin-kevitra iray, fa raha misoroka tsotra fotsiny ireo hadisoana iombonana ianao, dia ho eo amin'ny làlana mety tsara ho an'ny famolavolana drafitra tsara.

Database Mistake # 1: Famerenana ny saha eo amin'ny latabatra

Ny fitsipika fototra ankapobeny ho an'ny famolavolana drafitra tsara dia ny mamantatra ny angon-drakitra miverimberina sy mametraka ireo tsanganana mamerina eo amin'ny latabany manokana. Ny famerenana ny saha eo amin'ny latabatra dia mahazatra ho an'ireo izay tonga avy amin'ny tontolon'ny latabatra, fa raha toa kosa ny spreadsheets dia miezaka ny ho mendrika amin'ny endrika, ny tahiry dia tokony mifandray amin'ny fifandraisana. Toy ny mandeha 2D hatramin'ny 3D.

Soa ihany fa mora foana ny sombin-tsakafo. Diniho fotsiny ity latabatra ity:

OrderID Product1 Product2 Product3
1 Teddy Bears Jelly Beans
2 Jelly Beans

Inona no mitranga rehefa misy lamandy misy entana efatra? Mila ampiana sehatra iray hafa ho an'ny latabatra isika mba hanohanana vokatra telo. Ary raha manangana fampiharana mpanjifa manodidina ny latabatra isika mba hanampiana antsika hampiditra angona, dia mety mila manova azy miaraka amin'ny sehatry ny vokatra vaovao isika. Ary ahoana no ahitantsika ny baiko rehetra miaraka amin'ny Jellybeans ao amin'ny baiko? Ho voatery hivezivezy any amin'ny sehatry ny vokatra rehetra amin'ny tabilao miaraka amin'ny fanambarana SQL izay mety ho toa: SELECT * FROM PRODUCTS WHERE Product1 = 'Jelly Beans' OR Product2 = 'Jellybeans' OR Product3 = 'Jellybeans'.

Raha tokony hanana tabilao tokana izay mameno ny fampahalalam-baovao rehetra, tokony hanana tabilao telo isika tsirairay izay mitazona fanazavana samihafa. Amin'ity ohatra ity dia mila tolotra fandaharam-potoana isika miaraka amin'ny fampahalalana momba ny filaminana, tablasa momba ny vokatra miaraka amin'ny vokatra rehetra ary ny tabilao ProductOrders izay mampifandray ny vokatra amin'ny lamandy.

OrderID CustomerID Date Order Total
1 7 1/24/17 19.99
2 9 1/25/17 24,99
ProductID Product Count
1 Teddy Bears 1
2 Jelly Beans 100
ProductOrderID ProductID OrderID
101 1 1
102 2 1

Mariho hoe ny takelaky ny latabatra tsirairay dia manana ny sehatra ID miavaka. Ity no lakile voalohany. Mampifandray ny latabatra isika amin'ny fampiasana ny lanjany lehibe indrindra ho toy ny fanalahidin'ny vahiny eo amin'ny latabatra hafa. Vakio bebe kokoa momba ny fanalahidy voalohany sy ny fanalahidy vahiny.

Database Mistake # 2: Fandefasana latabatra eo amin'ny latabatra

Fahadisoana iraisana hafa izany, saingy tsy voatery hipoitra toy ny saha foana izy io. Rehefa manamboatra tahirin-kevitra ianao, dia tadiavinao tsara fa ny singa rehetra ao anaty tabilao dia mifandraika amin'ny tenany. Tahaka ny lalao an-dàlambe momba ny fijerena izay tsy mitovy. Raha manana banana, saham-boankazo, paiso sy televiziona ianao, angamba ny televiziona dia mety ho an'ny hafa.

Eo andaniny ihany, raha manana latabatry ny varotra olona ianao, ny fampahalalana rehetra ao amin'io latabatra io dia tokony mifandray manokana amin'io mpivarotra io. Ny fampahalalana fanampiny fanampiny izay tsy miavaka ho an'izany mpividy izany dia mety ho an'ny hafa any amin'ny banky angona.

SalesID voalohany Last Address Nomeraon-telefaona Office OfficeNumber
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 (Atsinanana) (211) 855-4541
3 Joe Parish 428 Aker St, Austin, TX (215) 545-5545 Austin Downtown (212) 421-2412

Raha toa ity tabilao ity dia mety ho tahaka ny mifandray amin'ny mpandraharaha tsirairay, dia manana latabatra miditra ao anaty latabatra. Jereo ny fomba amam-panao ny Office sy OfficeNumber amin'ny "Downtown Austin". Ahoana raha miova ny nomeraon'ny nomeraon'ny birao? Ilainao ny manavao ny angon-drakitra iray manontolo ho an'ny ampahany iray amin'ny fanovana vaovao, izay tsy misy zavatra tsara mihitsy. Ireo saha ireo dia tokony hifindra any amin'ny latabany manokana.

SalesID voalohany Last Address Nomeraon-telefaona 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 Parish 428 Aker St, Austin, TX (215) 545-5545 1
OfficeID Office OfficeNumber
1 Austin Downtown (212) 421-2412
2 New York (Atsinanana) (211) 855-4541

Ity karazana drafitra ity koa dia manome anao ny fahafahana mampiditra fampahalalana fanampiny amin'ny tabilao amin'ny Office raha tsy mamorona ny nofy ratsy ao amin'ny latabatry ny varotra. Alao sary an-tsaina hoe firy ny asa tokony hanarahanao fotsiny ny adiresy an-dalambe, tanàna, fanjakana ary postal zipo, raha toa ka ao amin'ny latabatry ny varotra ny fampahalalana rehetra!

Database Mistake # 3: Mametraka teboka roa na maromaro amin'ny sehatra iray

Ny fampidirana ny fampahalalana momba ny birao ho an'ny latabatry ny varotra dia tsy ilay olana tokana tamin'io daty io. Ny saha adiresy dia nahitana fanazavana telo: ny adiresy an-dalambe, ny tanàna ary ny fanjakana. Ny sehatra tsirairay ao amin'ny tahiry dia tokony ahitana ampahany kely fotsiny amin'ny fampahalalana. Rehefa manana fampahalalana marobe amin'ny sehatra iray ianao, dia mety ho sarotra kokoa ny manadihady ny antontan-kevitra momba ny angona.

Ohatra, raha tiantsika ny handefa fangatahana amin'ny mpivarotra avy any Austin? Mila mikaroka ao anatin'ny sehatry ny adiresy isika, izay tsy hoe tsy mahomby, fa afaka mamerina ny vaovao ratsy. Raha ny tena izy, inona no mitranga raha nisy olona nipetraka tany amin'ny araben'i Austin any Portland, Oregon?

Ity no tokony ho hitan'ny latabatra:

SalesID voalohany Last Address1 Address2 City State Zip Phone
1 Sam Elliot 118 Main St Austin TX 78720 2155555858
2 Alice Smith 504 2nd St New York NY 10022 2111221821
3 Joe Parish 428 Aker St Apt 304 Austin TX 78716 2155455545

Misy zavatra roa tokony hosoratana eto. Voalohany, ny "Adiresy1" sy ny "Adiresy2" dia toa diso tafahoatra eo amin'ny sehatra repetitive.

Na izany aza, amin'ity tranga ity dia manondro ireo antontan-taratasy samihafa izay mifandray mivantana amin'ny mpivarotra fa tsy ny antontan'isa miverimberina tokony hiditra ao amin'ny latabatra manokana.

Ary koa, ho toy ny fahadisoana sandoka hisorohana, dia jereo ny fomba namafana ny formata ho an'ny nomeraon-telefaona. Tokony hisoroka ny fametrahana ny endriky ny saha amin'ny fotoana rehetra azo atao. Amin'ny trosan'ny nomeraon-telefaona dia maro ny fomba hanoratan'ny olona ny laharan-telefaona: 215-555-5858 na (215) 555-5858. Izany dia mety hitady olona mivarotra amin'ny alàlan'ny nomeraon-telefaoniny na manao fikarohana ny olona mivarotra ao amin'io code io ihany.

Database Mistake # 4: Tsy mampiasa ny fanalahidy fototra fototra

Amin'ny ankamaroan'ny tranga dia te hampiasa tarehimarika haingana ianao na tarehimarika hafa na alphanumerika ho an'ny fanalahidinao voalohany. Tokony hialana amin'ny fampiasana ny vaovao marina momba ny fanalahidy fototra ianao na dia toa tsy misy dikany aza izany.

Ohatra, samy manana ny isam-pianakavianay samirery isika tsirairay avy, ka noho izany, ny fampiasana ny laharam-pahamehana ara-tsosialy ho an'ny tambajotra iray dia mety ho toy ny hevitra tsara. Saingy raha zatra izany, dia mety hiova ny nomeraon'ny fiantohana sosialy, ary tsy irintsika mihitsy ny hanova ny fanalahidintsika voalohany.

Ary izany no olana amin'ny fampiasana vaovao marina ho toy ny lanjany manan-danja. Afaka miova izany.

Database Error # 5: Tsy Mampiasa Fifanarahana Namana

Mety tsy ho toy ny zava-manahirana izany raha vao manomboka manamboatra ny tahirin-tserasera ianao, fa rehefa tonga any amin'ny toerana hanoratanao ireo fanontaniana manohitra ny angon-drakitra mba hahazoana vaovao ianao, ny fananana fivoriamben'ny anarana dia hanampy anao hitadidy ny anaran'ny saha.

Alao sary an-tsaina hoe tena sarotra kokoa ny manao izany raha voatahiry ho voalohany voalohany ny anarana, LastName ao anaty latabatra ary voalohany_name, last_name ao amin'ny latabatra hafa.

Ireo fivoriambe roa tena malaza indrindra dia manome ny litera voalohany amin'ny teny rehetra eny an-tsaha na amin'ny teny misaraka amin'ny fampiasana fanamarihana iray. Azonao atao ihany koa ny mahita ny mpizahatany sasany izay manaiky ny litera voalohany amin'ny teny rehetra afa-tsy ny teny voalohany: firstName, lastName.

Te hanapa-kevitra amin'ny fampiasana anarana tabilao manokana na anarana maromaro maromaro ihany koa ianao. Takelaka mandidy ve sa tabilao misy didy? Kitapo mpanjifa na tabilao mpanjifa ve izany? Indray, tsy te-hifikitra amin'ny latabatra sy volavolan-dalàna ianao.

Ny fivoriam-be izay nofidinao dia tsy zava-dehibe toy ny fizotran'ny fisafidianana sy ny fijanonana amin'ny fivoriamben'ny anarana.

Database Mistake # 6: Fanovana tsy mety

Ny indexing dia iray amin'ireo zavatra henjana indrindra hitranga, indrindra ho an'ireo vaovao amin'ny famolavolana drafitra. Ny fanalahidy fototra rehetra sy ny fanalahidin'ny vahiny dia tokony hosoloina. Ireo no rohy tafiditra miaraka amin'ny tabilao, noho izany raha tsy misy endritsoratra, dia hahita fahombiazana mahomby avy amin'ny tahiry.

Saingy matetika no tsy ampy ny saha hafa. Ireo no sahanin'ny "WHERE". Raha matetika dia hampitombo ny fikarohanao amin'ny fampiasana saha amin'ny WHITE clause, te-hieritreritra ny hametraka endriky izany sehatra izany ianao. Na izany aza, tsy te hanondro ny latabatra ianao, izay mety hanimba ny fahaizanao.

Ahoana no hanapahana azy? Ity dia ampahany amin'ny zavakanto amin'ny famolavolana drafitra. Tsy misy fetrany mafy ny isan'ny indekso tokony hapetraka eo ambony latabatra. Ny ankamaroany dia te hizaha ny saha izay matetika ampiasaina amin'ny WHITE clause. Vakio bebe kokoa momba ny fampidinana ny antontan-kevitra momba anao.