[access] inheritance (overerving)

Pagina: 1
Acties:

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Hoi,

Ik moet voor een access database maken met ene applicatie erbij. Nu heb ik twee tabellen die gegevens uit 1 tabel gemeen hebben, ik wil deze gegevens dus 'overerven'.
Ik ken het principe hiervan uit maar ik weet niet hoe ik dit in Access voor elkaar krijg :?

Ik hoop dat iemand mij kan vertellen hoe dit moet..

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Met een replica werken, of bedoel je dat niet. :?

Ik vindt het een behoorlijk vage vraagstelling eigenlijk.

  • ThePriest
  • Registratie: Mei 2000
  • Laatst online: 30-01-2024

ThePriest

the one, the only

U bedoelt een view?

Verwijderd

Mijn beste antwoord ... ehm, nee, reaktie is: "Say what???"

Bedoel je:
1) Ik weet niet wat normaliseren is. Help!
2) Ik wil een relatie tussen twee tabellen leggen. Mag dat?
3) Ik weet niet waar ik het over heb en wil wat meer informatie over databases in het algemeen.

|:(

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Nee, ik bedoel geen van bovenstaande 3 :P

Oke, ik zal het (proberen) uit te leggen ahv de tabellen..

Ik heb dus 1 entiteit met de volgende attributen:
toets
------
vaknaam
toetsnaam
kwartaal
inschrijving

nu zijn er 2 mogelijke soorten toetsen, een zelftoets en een tentamen:

zelftoets
---------
gemaakt
resultaat

tentamen
---------
datum
tijd
lokaal
aanwezig
resultaat

de zelftoets en tentamen 'erven' eigenschappen van 'toets'. Ook wel bekend als overerven of inheritance.
'toets' is dus een supertype en 'zelftoets' en 'tentamen' zijn dus subtypes.
Ze delen dus de attributen van 'toets'
(snapt iedereen het nog :?)

toets
----------
| |
zelftoets tentamen

dus totaal komt zelftoets er zo uit te zien:

zelftoets
----------
vaknaam
toetsnaam
kwartaal
inschrijving
gemaakt
resultaat

Dit moet in Access gebeuren, ik weet alleen niet HOE :? je dat moet doen. Ik hoop dat iemand van jullie het moi kan vertellen...

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Volgens mij is dat onmogelijk.

https://fgheysels.github.io/


  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Dat zou niet zo mooi zijn, een docent van mij zei namelijk dat ik mijn mooie ERD zo moest doen.
Ik weet ook niet OF het eigenlijk wel kan whoami, dus misschien worden het dan wel 2 tabellen ofzo :?

Van wat ik zo uit die docent z'n verhaaltje kon opmaken zou het moeten kunnen...

Zou er dan een andere manier zijn om zoiets voor elkaar te krijgen??

Verwijderd

Op maandag 03 december 2001 21:20 schreef TheRebell het volgende:
de zelftoets en tentamen 'erven' eigenschappen van 'toets'. Ook wel bekend als overerven of inheritance.
'toets' is dus een supertype en 'zelftoets' en 'tentamen' zijn dus subtypes.
Ze delen dus de attributen van 'toets'
Over 't algemeen doen tabellen niet zo erg aan inheritance.
Ze hebben kolommen/velden, en that's it...

Wil je de gegevens uit 'toets' niet dupliceren in 'zelftoets' en 'tentamen', dan zul je i.p.v. die velden een link naar het bijbehorende record in 'toets' moeten geven.
'toets' moet dan een unieke primary key krijgen (een auto incrementing ID veld bv.), en 'zelftoets' en 'tentamen' een (foreign key) veld dat hiernaar verwijst.

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Vreemd, zal het morgen toch eens aan die docent moeten vragen.
Zoals ik uit jullie reacties opmaak kan het dus niet ik Access. Zou jammer zijn, want ik heb net mijn ERD gemaakt. Ik weet nu 1..2..3.. niet hoe ik die dan moet omzetten.

toch bedankt voor de reacties. Mocht iemand het toch weten, dan houd ik me aanbevolen :P

Verwijderd

Er zijn wel object-oriented databases die dergelijke functionaliteit ondersteunen, maar Access is daar geen van.

Je kunt het effect wel simuleren door gewoon 1 tabel te maken, waarin velden zitten die gezamelijk zijn, maar ook alle velden die bij de subtypes horen. Daarna moet je ook een veld opnemen dat het type aangeeft.

Voor records van een type blijven de velden van het andere type gewoon leeg en andersom.

HTH :)

Verwijderd

Op maandag 03 december 2001 22:56 schreef TheRebell het volgende:
Zou jammer zijn, want ik heb net mijn ERD gemaakt. Ik weet nu 1..2..3.. niet hoe ik die dan moet omzetten.
Ben wel benieuwd hoe je datamodel er nu uitziet...

Verwijderd

Op maandag 03 december 2001 22:59 schreef MrX het volgende:
Je kunt het effect wel simuleren door gewoon 1 tabel te maken, waarin velden zitten die gezamelijk zijn, maar ook alle velden die bij de subtypes horen. Daarna moet je ook een veld opnemen dat het type aangeeft.
Zo deed je dat vroeger, met ISAM. Maar sinds de uitvinding van relationele databases zijn foreign keys een stuk efficienter en eleganter...

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 15-09 22:37
Heb het hier alleen op papier, niet op de pc dus kan het niet laten zien.

Toch bedankt :)

Verwijderd

Op maandag 03 december 2001 23:17 schreef Afterlife het volgende:

[..]

Zo deed je dat vroeger, met ISAM. Maar sinds de uitvinding van relationele databases zijn foreign keys een stuk efficienter en eleganter...
Di's een 1-op-1 relatie, en dat vind ik niet echt elegant en als je die kan vermijden is dat meestal een goed idee.

De afweging of je dit wil doen is afhankelijk van hoeveel verschillende subtypes je hebt, en hoeveel de velden voor die subtypes verschillen van andere subtypes. Als er slechts 2 gegevens tussen alle subtypers overeen komen en 10 verschillen dat kun je inderdaad beter aparte tabellen gaan maken, maar als er 10 gegevens overeen komen en 2 verschillend zijn met maar 3 subtypes, kan je het beter binnen 1 tabel houden, mijns inziens.

Just my Euro 0.02

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Op dinsdag 04 december 2001 00:36 schreef TheRebell het volgende:
Heb het hier alleen op papier, niet op de pc dus kan het niet laten zien.

Toch bedankt :)
Scannen of zet het eens in visio

https://fgheysels.github.io/


Verwijderd

Kan wel, doe het volgende:

1. Maak de 3 tabellen:
zelftoets
--------
Zelftoets-ID = Autonummering (Primaire sleutel)
gemaakt = Ja/Nee
resultaat = ...

tentamen
---------
Tentamen-ID = Autonummering (Primaire sleutel)
datum = Datum
tijd = ...
lokaal = Tekst
aanwezig = Ja/Nee
resultaat = ...

toets
------
Toets-ID = Autonummering (Primaire sleutel)
vaknaam = Tekst
toetsnaam = Tekst
kwartaal = ...
inschrijving = ...
zelftoets = Nummeriek
tentamen = Nummeriek

2. Bij de velden zelftoets en tentamen (in tabel toets) moet vervolgens op het tabblad Opzoeken het veld Weergave besturingselement de keuze Keuzelijst met invoervak geselecteerd worden.

Bij het veld rijbron moet de betreffende tabel geselecteerd worden (dus zelftoets of tentamen).

Hierna moet de afhankelijke kolom ingevoerd worden. In dit geval is het kolom 1 (autonummering)

En daarna het aantal kolommen. Of te wel het aantal kolommen dat een tabel heeft (6 of 7)

Bij de kolombreedte kan de breedte van een kolom aangegeven worden. Teven kan een kolom verborgen worden door deze een waarde van 0 op te geven. Handig om het autonummeringsveld te verwijderen.

Dit was het. Als je nu de tabel toets opent, zie je een rolldown menu bij zelftoets en tentamen met daarin de betreffende gegevens uit deze tabellen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Niet echt inheritance als je het mij vraagt...

https://fgheysels.github.io/

Pagina: 1