HULP gevraagdbij opzetten db, prinaire sleutels, relaties, e.d....

Status
Niet open voor verdere reacties.

marleen009

Gebruiker
Lid geworden
19 sep 2011
Berichten
25
Lieve mensen,

Wie o wie wil mij helpen??

ik heb een
tabel Projecten:
dossiernr. vb 01-2345ABC - kan ik deze als primaire sleutel gebruiken? (deze dossnr. is altijd uniek)
naamproject
projectfase - keuzelijst
adres
verantwoordelijke - kan meer dan 1pers. zijn
typeproject - keuzelijst - een project kan van verschillende types zijn
dan zou ik bij bv3 types, driemaal dezelfde info in de tabel moeten zetten behalve dan het type dat verschilt? de dossiernaam wordt dan ook driemaal vermeld ( dus dit niet als primaire sleutel?...)

Moet ik dus een aparte tabel maken met projectid (autonummering) en projectnr?


tabel klanten
1 klant kan meerdere projecten hebben
naam
adres
tel
...

Ik zit volledig in de knoei met de relaties!!!!
Alle hulp is welkom en als iemand dit even voor mij in elkaar zou kunnen / willen steken...??

Alvast bedankt!
ps. ik heb ACCESS 2010
 
Laatst bewerkt:
Als een bepaalde veldwaarde uniek is, kun je er altijd een sleutel van maken. Da's namelijk het belangrijkste aspect van een sleutel: dat-ie uniek is. Daarbij maakt het niet uit of het een getal of tekst is. Je geeft eigenlijk zelf al aan wat je probleem en je oplossing is: een uniek veld mag maar één keer voorkomen in een tabel, dus voor een project 3 records maken als hij in 3 categorieën valt, is geen optie. Er zijn in Access 2010 twee mogelijkheden: de mooiste (en tevens de oplossing waarbij je volledig binnen de database normen blijft) is aparte tabellen maken voor de gegevens die vaker terugkomen. Dus een tabel Project_Type waarin je voor je projectvoorbeeld dan 3 records maakt, met 3 keer het ProjectID, en de drie verschillende ProjectTypeID's. Hierin is ProjectID dan uiteraard geen sleutel, want het veld komt vaker voor. ProjectTypeID is ook geen sleutel, want die waarden kunnen ook vaker voorkomen (bij verschillende projecten). De combinatie ProjectID+ProjectTypeID daarentegen lijkt mij uniek, en dat is dus wel een prima sleutel. Je kunt dus ook sleutels maken van meerdere velden; zolang de combinatie van die velden uniek is.
Feitenlijk moet je zo al je tabellen doorlopen, om te zien waar dubbele waarden voorkomen. Die splits je dan af in aparte tabellen, waarin je dan koppelt met de hoofdtabel.

De andere oplossing kan alleen in Access 2010, en die bestaat uit het gebruik van keuzelijsten waarin je meerdere opties kan selecteren. Op die manier maak je nog steeds één record aan voor het ProjectID, maar nu kun je wèl meerdere projecttypen etc. selecteren en gebruiken. En dus heb je nog steeds een enigszins genormaliseerde tabel, want Access slaat die waarden gelukkig intern wel apart op. Maar je database voldoet niet meer aan de databasenormen, en zal nooit uitwisselbaar zijn met andere systemen. En dat vind ik een dure prijs...
 
bedankt voor de reply!

een project is een architectuurproject dat zowel verbouwing als interieur kan zijn, kantoren kan ook industrie zijn, flatgebouwen eveneens handel ( met handelsruimte) ...

mss domme vraagvoorjou, maar hoe koppel ik de klant ( die versch projecten heeft aan het project) ik weet wel projID toevoegen aan tblKlant en relatieleggen maar ik krijg dan geen waarde in mijn tabel...
Moet ik dus nog een tabel maken met : ID(autonr) en projectnr 01-2345ABC, en ook een aparte tbl met ID en klantnaam en zo koppelen? + tabel ID en verantwoordelijke?
 
Laatst bewerkt:
Je moet in ieder geval geen ProjectID aan de tabel Klant toevoegen, want dan kun je een klant maar aan één project koppelen, en dat zal de bedoeling niet zijn. Als een klant meerdere projecten kan hebben, dan komt er dus een tabel Klant_Project bij, waarin je in ieder geval een KlantID veld opneemt en een ProjectID veld. Op die manier maak je dan de combinaties van projecten en klanten. Tevens neem je in die tabel alle klant-project specifieke details op.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan