Seuraavissa osissa näytetään, miten tietokantataulukon yhteydet on suunniteltu. Objektien nimet annetaan, joten voit helposti tutkia niitä Northwind 2.0 Starter Edition -tietokannassa.
Avaa suhdekaavio, jossa näkyvät kuusi taulukkoa ja niiden väliset yhteydet, valitsemalla Tietokantatyökalut > Yhteydet.
Tässä kaaviossa näkyvät kaikki kuusi taulukkoa. Kaaviossa taulukoiden väliset viivat tunnistavat niiden väliset yhteydet. 1 ja ääretön symboli (∞) rivien lopussa edustavat suhteen yksipuolista puolta (esimerkiksi yhtä asiakasta) ja suhteen monipuolista puolta. Esimerkiksi yksi asiakas lähettää useita tilauksia. Lisätietoja on artikkelissa Taulukoiden yhteyksien opas.
Seuraavat periaatteet koskevat Northwind 2.0 Starter Editionin taulukoita sekä taulukoita yleensä.
Perusavaimet Määritä taulukon jokainen tietue yksilöllisesti. Kaikissa taulukoissa on perusavain. Yhteyskaaviossa näppäinsymbolit tunnistavat nämä perusavaimet. Perusavainten nimeämiskäytännöt on nimetty taulukolle, jossa ne ovat, esimerkiksi "TableNameID".
Laskurikentän lisääminen perusavaimeksi.
Tehokkuutta Paremman suorituskyvyn ja tehokkaamman tallennustilan varmistamiseksi perusavainten pitäisi olla numeerisia. Lisäksi on kätevämpää, että Access luo automaattisesti uuden yksilöllisen arvon kunkin uuden tietueen perusavaimelle. Laskuri-tietotyypillä on molemmat ominaisuudet. Laskurit eivät muuten ole merkityksellisiä lukuja, eikä niitä voi käyttää muuhun tarkoitukseen. Lisätietoja on artikkelissaViiteavaimet Taulukossa voi olla myös yksi tai useampi viiteavain sen mukaan, liittyykö se tietokannan muihin taulukoihin. Viiteavain sisältää arvoja, jotka vastaavat liittyvän taulukon perusavaimen arvoja.
Yksilölliset indeksit Myös muilla taulukoiden kentillä voi olla omat yksilölliset indeksinsä, esimerkiksi OrderStatus.StatusCode. On epäloogista, että OrderStatus-taulukossa on kaksi tilaustilaa, joissa on sama koodi, vaikka Tilakoodi itsessään ei ole perusavain. Yksilöllinen indeksi kehottaa Accessia estämään kentän arvojen kaksoiskappaleet.
Muut kuin yksilölliset indeksit Taulukoissa voi olla myös indeksejä, jotka nopeuttavat hakuja ja lajittelua kyseisissä kentissä, esimerkiksi Tilaukset.Tilauspäivä. Useita tilauksia voi tehdä samana päivänä, ja haluat usein hakea ja lajitella tilauspäivämäärien mukaan. Kentässä on ei-yksilöivä indeksi, joka nopeuttaa hakua ja lajittelua.
Taulukoiden ja kenttien nimet Voit nimetä asioita haluamallasi tavalla, mutta johdonmukaisuus on tärkeää. Suosittelemme, että taulukoiden ja kenttien nimet ovat sanoja, joiden välissä ei ole välilyöntejä, eikä erikoismerkkejä, kuten vinoviivaa (/), ristikkomerkkiä (#) tai prosenttia (%). Käytä esimerkiksi Tilauspäivä-vaihtoehtoa, mutta et tilauspäivämäärää. käytä OrderNumber- tai OrderNo-tilausta, mutta ei Tilaus#-vaihtoehtoa.
CamelCase Isojen kirjainten avulla voit korostaa nimen yksittäisiä osia, kuten Tilauspäivä, mutta ei Tilauspäivä- tai OrderDate-kirjainta.
Pakollinen arvo Tämä periaate tuo esiin liiketoimintasääntöjen merkityksen sovellukselle. Jotkin tilanteet edellyttävät arvoja tai jopa tiettyjä arvoja joissakin kentissä. Mitä hyötyä on esimerkiksi tilauksesta tietämättä sen tehnyttä asiakasta? Tämä tarkoittaa, että Asiakastunnus on Tilaukset-taulukon pakollinen kenttä.
Lasketut kentät Access tukee laskettuja kenttiä taulukoissa, esimerkiksi Employees.FullName-kentässä. Haluat ehkä mieluummin luoda laskettuja kenttiä kyselyyn kuin taulukkoon.
Liitekentät Access tukee liitekenttiä, kuten Työntekijät.Kuva, joka sisältää työntekijän kuvan. Liitteet voivat tallentaa kuvia, asiakirjoja, sähköposteja ja muita binaaritietoja. Liitteet vievät paljon tilaa tietokannassa. Liitteiden tallentaminen tiedostopalvelimeen on tehokkaampaa.
Moniarvoiset kentät Kuten nimestä voi päätellä, moniarvoiset kentät tallentavat yhden tai useamman arvon yhteen kenttään, esimerkiksi Työntekijät.Otsikko. Suosittelemme, että käytät niitä säästeliäästi etenkin, jos haluat suurentaa tietokannan kokoa. Useimmissa muissa tietokantajärjestelmissä ei ole niitä, joten se vaatisi paljon uudelleentöitä.
Lisätietoja tietotyypeistä on artikkelissa Johdanto tietotyyppeihin ja kentän ominaisuuksiin.
Tässä osassa käsitellään kunkin taulukon tärkeimpiä ominaisuuksia. Jos haluat tarkastella taulukon rakennetta, valitse se siirtymisruudussa, napsauta sitä hiiren kakkospainikkeella, valitse Rakennenäkymä tai valitse Tietokantatyökalut > Yhteydet ja napsauta sitten taulukon objektia hiiren kakkospainikkeella. Lisätietoja on artikkelissa Johdanto taulukoihin.
Tärkeää: Vältä varattujen sanojen käyttöä, jotka voivat aiheuttaa nimeämisristiriitoja. Lisätietoja on artikkelissa Lisätietoja Accessin varatuista sanoista ja symboleista.
Työntekijät-taulukko
Tähän taulukkoon tallennetaan tietoja Northwindin työntekijöistä.
Kentät |
Kuvaus |
Etunimi, Sukunimi |
Molemmat nimet ovat pakollisia, ja Yhdessä Northwindissa niiden on oltava yksilöllinen yhdistelmä. Kun avaat Indeksit-valintaikkunan taulukon rakennenäkymässä, näet, että Etunimi + Sukunimi -toiminnolla on yksilöllinen indeksi. Koska Etunimi ja Sukunimi on indeksoitu yksilöllisesti, Northwind-taulukko ei voi tallentaa kahta samannimistä työntekijää. Muissa tilanteissa voit käyttää toista liiketoimintasääntöä. |
FullNameFNLN, FullNameLNFN |
Katso laskettujen kenttien lausekeominaisuudesta, miten Access yhdistää laskettujen kenttien arvot. Jos haluat sisällyttää keskimmäisen alkukirjaimen, lisää se olemassa olevaan lausekkeeseen sopivalla välistysllä osien välillä. |
Puhelinkentät |
Puhelinten liiketoimintasääntö on, että työntekijöiden mieltymys on merkityksellisempi kuin palvelutyyppi. Siksi käytetään ensisijaisen ja toissijaisen puhelinnumeron sijaan soluja, toimistoja, kotinumeroita ja niin edelleen. |
Tervehdys |
Tervehdys on Lyhyt teksti -kenttä. Moniarvoisen kentän ominaisuuden havainnollistaminen Accessissa on yhdistelmäruutu, jossa on muokattava luettelo ennalta määritetyistä arvoista. Lyhyet, staattiset luettelot ovat usein moniarvoisille kentille, koska ne eivät juurikaan muutu, jos koskaan. |
JobTitle |
JobTitle on toinen pakollinen kenttä. |
Asiakkaat-taulukko
Tähän taulukkoon tallennetaan tietoja Northwindin asiakkaista.
Kentät |
Kuvaus |
CustomerName |
Northwindin asiakkaat ovat yrityksiä, ja tarvitaan asiakkaan nimi. Toisin kuin työntekijöiden nimet, sitä ei kuitenkaan indeksoida yksilöllisesti, jolloin kahdella tai useammalla asiakkaalla on sama nimi. |
PrimaryContactFirstName, PrimaryContactLastName, PrimaryContactJobTitle |
Ensisijaisen yhteyshenkilön etu- ja sukunimet ja tehtävänimike eivät ole pakollisia, koska asiakkailla ei ehkä ole yhtä henkilöä ensisijaisena yhteyshenkilönään. Yhteyshenkilöt eivät saa antaa työnimikettä tilaukselle. |
BusinessPhone |
Northwind edellyttää vain yhtä puhelinnumeroa kullekin asiakkaalle, mutta näin ei voi siepata useita puhelinnumeroita asiakkaille tai asiakkaiden yhteyshenkilöille. Reaalimaailman tilanteissa yhteystietoihin sovelletaan yleensä monimutkaisempia liiketoimintasääntöjä. |
Osoite, Kaupunki Tila, ZIP |
Northwind tarvitsee osoitteen tilausten lähettämiseen asiakkaille. Asiakkaalle on vain yksi yleinen osoite. Reaalimaailman tilanteissa asiakkailla on usein erilliset laskutus-, toimitus- tai muut osoitteet. Toinen organisaatiosi liiketoimintasääntö vaatisi lisäkenttiä. |
Huomautukset |
Muistiinpanot-kenttä on Pitkä teksti -tietotyyppi, johon tallennetaan enintään 1 Gt tekstiä. Näin voit lisätä yksityiskohtaisia kommentteja asiakkaista käytettäväksi myöhemmissä tilaustilanteissa. |
Tilaukset-taulukko
Tähän taulukkoon tallennetaan tietoja Northwindin tilauksista.
Kentät |
Kuvaus |
OrderDate, ShippedDate, PaidDate |
Tilaukset vaativat kolme päivämäärää. Ne ovat kaikki Päivämäärä ja kellonaika -tietotyyppejä, mutta niissä on kaksi muotoa. OrderDatessa on sekä päivämäärä että kellonaika, koska sinua saattaa kiinnostaa tilausvolyymin analysointi päivän eri osissa. Kahden muun päivämäärän osalta tarvitaan vain päivämäärä. ShippedDate- ja PaidDate-taulukoiden kelpoisuussääntö varmistaa, että kyseiset päivämäärät eivät ole ennen Tilauspäivä-päivämäärää. |
OrderStatusID |
Tilauksen tila ilmaisee, missä järjestys on Northwind-työnkulussa. Tilaukset etenevät neljässä vaiheessa: Uusi – > Laskutettu – > Lähetetty – > Suljettu.Nykyisen OrderStatus-taulukon viiteavain käyttää OrderStatusID-tunnusta OrderStatus-hakutaulukosta. Tila-hakutaulukon avulla voit varmistaa, että tilaukseen voidaan määrittää vain neljä ennalta määritettyä tilaa. |
Tilaustiedot-taulukko
Tähän taulukkoon tallennetaan tietoja Northwindin tilaustiedoista.
Kentät |
Kuvaus |
Tilaustunnus |
Jokaisen Tilausnimike-taulukon rivinimikkeen on kuuluttava yhteen Tilaukset-taulukon Tilaukset-kohtaan. OrderID on viiteavain, joka tunnistaa kyseisen tilauksen. Kuten edellä todettiin, yksi tilaus, joka sisältää yhden tai useamman rivinimikkeen, kuvaa yksi-moneet-yhteyttä. |
Productid |
Jokainen Tilaustiedot-taulukon tietue sisältää tilatun tuotteen tuotetunnuksen. ProductID on Tilaustiedot-taulukon viiteavain, joka määrittää kyseisen tuotteen kyseisessä järjestyksessä. Tämä on myös yksi-moneet-yhteys. |
OrderID+ ProductID |
Kuten Näit Työntekijät-taulukossa, useilla kentillä voi olla yksilöllinen indeksi. OrderDetails-taulukon yksilöllinen hakemisto Tilaustunnus+Tuotetunnus-tunnuksen kohdalla varmistaa, että kukin tilaus sisältää tuotteen vain kerran. Kun avaat Indeksit-ominaisuusikkunan valintanauhasta, näet tämän yksilöllisen indeksin. |
Tuotteet-taulukko
Tähän taulukkoon tallennetaan tietoja Northwindin tuotteista.
Kentät |
Kuvaus |
ProductCode |
Perusavaimen, ProductID:n, lisäksi Northwind-tuotteissa on ihmisystävällinen, yksilöllisesti indeksoitu tuotekoodi. Työntekijät viittaavat yleensä tuotekoodeihin, eivät perusavainarvoihin. Tuotekoodi on yhdistelmäarvo, joka koostuu luokkamäärityksestä ja numerosta, esimerkiksi B-1 "Juoma"-tuotteelle 1. |
Tuotteen nimi Tuotteen kuvaus |
Lyhyiden tekstituotteiden nimien lisäksi tuotteille on pitkä tekstikuvaus. Tätä arvoa voidaan käyttää luettelon kuvauksessa tai asiakkaiden kysymyksiin vastaamiseen. |
Yksikköhinta |
Kaikki tuotteet myydään yksikköhinnalla kullekin tuotteelle, mikä yksinkertaistaa tietokantaa ominaisuuksien esittelynä. Useimmissa tosielämän tilanteissa hinnoittelu on usein huomattavasti monimutkaisempaa. |
Muita aiheita