Databasestructuur: persoonlijke tabel maken waarnaar in andere tabellen moet worden verwezen

Ik heb een vraag over entiteitscreaties die specifiek zijn voor een studentinformatiesysteem dat ik aan het bouwen ben. ik heb een persoonstabel gemaakt (id ..) en ik probeer uit te vinden hoe ik mijn student-, ouderreferenties aankan. is het een goed idee om twee afzonderlijke tabellen (student, bovenliggende) te maken die verwijzen naar de tabel Persoon per FK? Alle details over een persoon (voornaam, achternaam, SSN ...) zijn ingesteld in de tabel Persoon, maar er zijn verschillen tussen een ouder en een leerling, hoe gaat u hiermee om in een database?

0

3 antwoord

Zonder meer details te weten, lijkt het erop dat twee tafels Persoon en Student voldoende zouden moeten zijn. Heb twee kolommen in Studententabel zoals Student_id en Parent_id die elk een FK to person_id in Person-tabel zijn. Dit veronderstelt dat je alleen de student moet kennen die een ouder is en niet voor elke persoon. Ook ervan uitgaande dat zowel student als ouder persoon zijn.

0
toegevoegd

Ik ben het met Casey Robinson eens dat het een schone oplossing is.

Maar als u al een bevolkte tabel Persoon hebt die wordt gebruikt door een andere code ... Kortom, u kunt de tabel Persoon niet wijzigen. Hier is wat ik u zou willen voorstellen:

Maak een tabel (studentParent) die twee kolommen (student_id en parent_id) heeft, beide externe sleutels. The studentParent.student_id = Person.id van de student en studentParent.parent_id = Person.id van de ouder.

Op deze manier hoeft u de tabel Persoon niet te wijzigen. En zal in staat zijn om de ouder, studentrelatie te creëren.

0
toegevoegd

Omdat er fundamentele verschillen zijn tussen ouders en studenten, zouden twee tabellen de voorkeur hebben. Op deze manier kun je gemakkelijk een relatie tot stand brengen die de studenten en ouders verbindt.

De andere optie is om null-waarden te gebruiken in de kolommen die niet van toepassing zijn op een gegeven record. Het zal echter moeilijker zijn om ervoor te zorgen dat de relatie altijd een student en ouder verbindt.

0
toegevoegd
Als ik twee aparte tabellen maak (Bovenliggend, Student), dan heb ik in totaal drie tabellen (inclusief Personentabel). Hoe voorkom ik dat dubbele records worden gemaakt in elk van deze tabellen. Mijn applicatie moet een student maken en deze met een ouder verbinden, maar ik had mijn vraag moeten verduidelijken. Ik vroeg of ik de Personentabel nodig heb?
toegevoegd de auteur Warz, de bron
Ik heb de tabel Persoon gebruikt vanwege het aantal toenemende rollen in mijn toepassing. Ik heb echter uiteindelijk de (student & ouder) tabel gemaakt voor een gemakkelijke relatie en verbinding, zoals je al zei. Bedankt voor je hulp.
toegevoegd de auteur Warz, de bron
De persoonstabel is niet nodig. Technisch gezien kunnen ouder en student subklassen van personen zijn. Maar dat is een hoop extra werk voor weinig voordeel in dit voorbeeld. Ik zou absoluut de ingangen van de persoonstabel naar de juiste (student of ouder) tafel migreren en de persoonstabel laten vallen.
toegevoegd de auteur Casey Robinson, de bron