Probleempje met Primary Key instellen (zie screenshots!)

Status
Niet open voor verdere reacties.

gast0514

Gebruiker
Lid geworden
8 okt 2007
Berichten
43
Goedemorgen,

Vorige week kreeg ik ruzie met mijn DataBase Diagram in C#. Ik kan het in mijn eentje niet winnen dus vraag ik jullie hulp :D

Ik heb een Plaat. Deze is van een bepaald materiaal gemaakt.


Hier zie je een screenshotje van een gedeelte van mijn DataBase Diagram:

scr_01.jpg


Nu wil ik de 'verbinding' tussen Plaat en Materiaal maken:

scr_02.jpg


En dan krijg ik:

scr_03.jpg


En het probleem is nou dat Plaat mijn Primary Table is en niet Materiaal, maar dat kan ik hier niet instellen. Waarschijnlijk omdat MateriaalID in het tabel Plaat geen Primary Key is. (De Primary Key in het tabel Plaat is PlaatID, omdat deze weer verbonden is met een ander tabel).

Wanneer ik bij MateriaalID de Primary Key verwijder kan ik het tabel Plaat wel als Primary Key Table instellen, maar dan krijg ik daarna het volgende:

scr_05.jpg



Nou is dus mijn vraag hoe ik het tabel Plaat met tabel Materiaal kan verbinden, en waarbij Plaat de Primary Key Table is, zonder MateriaalID in het tabel Plaat als Primary Key in te stellen.

Als het niet duidelijk is dan laat t maar horen, en anders alvast bedankt!

Mvg
 
Laatst bewerkt door een moderator:
Materiaal.MateriaalID in de eerste plaatjes wordt weergegeven als sleutel van de tabel.
Als je in het laatste plaatje kijkt.. dan zie ik geen sleutel er mee bij staan.
 
Hey killermenace dat klopt. Omdat ik Plaat niet in kon stellen als Primary Key Table had ik geprobeerd of het zou lukken als ik de Primary Key bij Materiaal.MateriaalID weg zou halen. Als ik dit doe kan ik Plaat wel als Primary Key Table instellen, maar dan krijg ik de waarschuwing die je op het laatste plaatje ziet!

Mvg
 
Laatst bewerkt door een moderator:
Materiaal.MateriaalID moet unique of een primairy key zijn Anders kan je die link niet goed leggen. Dat is dus ook wat hij aangeeft...

Je wil nu een 1 op * relatie maken.
Waar 1 unieke waarde uit de tabel materiaal meerdere keren voor kan komen in de tabel plaat. (zoals ik het nu begrijp)

Dan moet dus Materiaal.MateriaalID unique zijn voordat je die link kunt leggen.
Is het zo dat je meerdere materialen in 1 plaat wilt hebben, dan kan je het beste gebruik maken van een koppeltabel.
 
Laatst bewerkt:
Ja psies, dat begrijp ik. (De Primary Key bij Materiaal.MateriaalID weghalen was ook maar een van de dingen die ik geprobeerd had.)

Als ik Materiaal.MateriaalID weer Primary Key maak, dan kan ik hem niet aan het tabel Plaat koppelen, tenminste niet als ik wil dat Plaat de Primary Key Table is. (zie foto 3) Het tabel Plaat is dan Foreign key table en dat kan ik niet veranderen.

Edit:

Sorry ik had niet heel je bericht gelezen, alleen de bovenste 2 regels. (Maandagochtend he)

"Dan moet dus Materiaal.MateriaalID unique zijn voordat je die link kunt leggen."

Hoe doe ik dit? is unique iets anders dan Primary Key?
 
Laatst bewerkt:
Plaat _moet_ de foreign key table zijn. Dat hoort zo bij een 1 op * relatie.

Je maakt een link tussen materiaal.materiaalID en plaat.materiaalID
In materiaal is de materiaalID een primairy key. Dit moet omdat deze unique moet zijn.
In plaat is materiaalID geen key en is ook niet unique. Dit omdat een materiaal is meerdere platen voor kan komen.

Dan kom je op het volgende uit:
Materiaal.materiaalID is een primairy key
Plaat.materiaalID is geen key en is ook niet unique

De tabel waar dan de primairy key in staat is de materiaal tabel. Die wordt dan ook, in deze relatie, aangegeven als primairy key table. Omdat het nou juist de tabel is waar voor deze relatie de primairy key in staat. De plaat tabel is in deze relatie dan de foreign key tabel omdat deze niet de waarde bevat wat in deze relatie unique moet zijn.

"Dan moet dus Materiaal.MateriaalID unique zijn voordat je die link kunt leggen."

Hoe doe ik dit? is unique iets anders dan Primary Key?

Een primairy key is altijd unique maar een unique waarde hoeft niet altijd een primairy key te zijn ;)
 
Laatst bewerkt door een moderator:
Oke dus als ik het goed begrijp is er helemaal geen probleem, dus wat je ziet op het 3e screenshotje klopt gewoon.

Maar wanneer ik dit zo opsla, en hier een DataSet van maak, dan zie ik het volgende:

scr_06.jpg


Wat ik hieruit opmaak is dat ik een Materiaal heb, deze bestaat uit MateriaalID, MateriaalNaam, MateriaalCode EN een Plaat! (met alle gegevens die daar bij horen.

Is dit niet precies verkeerd om? Dus dat ik eigenlijk een Plaat moet hebben, die bestaat uit PlaatID, Aantal, (enz.) EN Materiaal?

Dit heb ik zelf even in elkaar geknutseld om duidelijk te maken wat ik bedoel:

scr_07.jpg
 
Ik ben ff gewoon verder gegaan met de tabellen waarvan ik eigenlijk denk dat ze niet helemaal kloppen (zie hierboven).

Nou heb ik het probleem dat ik de gekoppelde tabellen niet op kan slaan. (wanneer ik nieuwe gegevens invoer, opsla, het form sluit en dan weer open, dan staan de ingevoerde gegevens er niet meer in). Zou dit met het bovenstaande 'probleem' te maken kunnen hebben?

Mvg
 
Laatst bewerkt door een moderator:
Het is een mogelijkheid
Probeer anders eens je database opnieuw aan te maken met wat je nu weet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan