Kolom toevoegen aan Tabel met variabele kolom-naam

Status
Niet open voor verdere reacties.

VB noob

Gebruiker
Lid geworden
11 feb 2009
Berichten
78
Ik heb drie tabellen.
- DogID (primary key is ook DogID)
- Sightings (primary key is SightingID)
en
- Dogs at Sighting (primary key is ID, de andere rijen zijn DogID and SightingID)

Wanneer een nieuwe DogID toegevoegd wordt aan de tabel DogID moet er ook een nieuwe kolom toegevoegd worden aan de tabel Dogs at Sighting.

Met de ALTER TABLE statement kan ik wel een kolom toevoegen als volgt:
Code:
ALTER TABLE [SigthingID and Dogs]
ADD [i]ID of Dog[/i] TEXT(50)

Alleen zou ik dus graag willen dat ID of Dog automatisch gegenereerd wordt wanneer een nieuwe DogID toegevoegd wordt in de tabel DogID.

Maar dat lukt me dus niet.
Heb ook al bedacht dat het eventueel via een pop-up scherm te doen (via criteria) waar gevraagd wordt om de kolomnaam. Maar dat kan volgens mij niet met het ALTER TABLE statement.

Iemand een idee om dit op te lossen? Het is nl. nogal onhandig om elke keer als er een nieuwe record wordt toegevoegd in DogID handmatig een nieuwe kolom te maken in de Dogs at Sighting tabel.
 
Waarom moet die kolomnaam variabel zijn?
Je kan dan beter kiezen voor een query die je on-the-fly aanmaakt. Je kan je kolomnaam dan eenvoudiger aanpassen.
Uit je laatste opmerking
Iemand een idee om dit op te lossen? Het is nl. nogal onhandig om elke keer als er een nieuwe record wordt toegevoegd in DogID handmatig een nieuwe kolom te maken in de Dogs at Sighting tabel.
blijkt dat je database niet genormaliseerd is. Je zou geen kolom hoeven toe te voegen als er een hond bijkomt.

HTH:D
 
Waarom moet die kolomnaam variabel zijn?
Je kan dan beter kiezen voor een query die je on-the-fly aanmaakt. Je kan je kolomnaam dan eenvoudiger aanpassen.
Uit je laatste opmerking
blijkt dat je database niet genormaliseerd is. Je zou geen kolom hoeven toe te voegen als er een hond bijkomt.

HTH:D

Idd, many-to-many relation.
Maar had een beetje over een 'multi-select' list box gekeken. Dat werkt veel handiger en dan hoef ik geen kolommen toe te voegen.
De tabel 'Dogs at Sighting' heeft dan de kolommen 'ID', 'SightingID' en 'DogID'.

De multi-select listbox toevoegen aan het formulier is geen probleem, alleen om de selectie toe te voegen aan de tabel 'Dogs at Sighting' is wat lastiger, maar wil nog wat opties uitproberen. Zal de oplossing wel posten als ik die heb en anders wordt het weer een vraag...
 
Laatst bewerkt:
Als ik het probleem enigszins correct inschat, wil je bijhouden welke honden meedoen aan welke sighting. Daarvoor heb je dan een tabel met Dogs, en een tabel met Sightings.
Deze twee tabellen bevatten je entiteiten, je niet-variabele gegevens. Het aantal honden, en het aantal events varieert, want kan uitbreiden. Ik neem nu voor het gemak maar even aan, dat je tabel Dogs en Sightings wordt gebruikt om vast te leggen welke honden meedoen aan welk event.

In dit geval zou ik de tabel Dogs at Sighting qua ontwerp lekker met rust laten, en alleen de gegevens opslaan die je nodig hebt om per hond vast te leggen aan welk event wordt meegedaan. Die gegevens leg je dus vast in de tabel <Dogs per Sighting>. Daar maak je een mooi formuliertje van, met keuzelijstjes voor je honden en je events, en (bijvoorbeeld) de datum en plaats van het event.

Hoe krijg je dan je overzicht, zoals je dat nu in je tabel wilt opslaan? Simpel met een kruistabel! Als je bijvoorbeeld een kruistabel maakt voor Event 7, en er hebben 12 honden aan meegedaan, dan krijg je in de kruistabel voor dit event netjes een overzicht met daarin (bijvoorbeeld) 12 kolommen met de namen van de respectievelijke honden.
Hou het simpel, want je snijdt jezelf alleen maar in je vingers, als je tabellen onnodig veel groter maakt dan nodig.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan