Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[UML] Database koppeling met programma

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

Voor een project van school moet ik (en mijn projectteam) een programma programmeren met een achterliggende database. De connectie met de database wordt al geregeld met andere klassen (zeg: adapter). Mijn vraag gaat over de verdeling van code.

We willen een aantal classes maken die voor de opbouw van de sql code moet zorgen. Er zijn 2 ideeen de revue gepasseerd.

idee 1. Voor elk typen een andere class maken (insert, update, select). Nadeel hiervan is, als er 1 ding gaat veranderen dan moeten gelijk een x aantal classes veranderd moeten worden.

idee 2. Voor elke tabel een andere class maken. Nadeel hiervan is voor ons project niet van belang (100 tabellen, 100 classes)

We hebben uiteindelijk voor idee2 gekozen. Alleen nu zit ik zelf te twijfellen. Stel dat we wel 100 tabellen hebben, dan zouden we ook 100 classes nodig hebben. Helaas kan ik niet op een andere juiste manier komen vandaar dat ik het hier op tweakers.net post.

Zijn er mensen die mij kunnen helpen die modeleer probleem op te lossen. Wellicht zijn er ook mensen die zo'n probleem in een proffesionele situatie hebben moeten oplossen.

Alvast bedankt,

Rick

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10 10:47
Indien je je database model 1 op 1 gaat mappen met klasses in je applicatie zou ik eens naar een OR mapper gaan kijken. Daarmee definieer je een mapping tussen je database tabel en je klasse. Vervolgens bied de OR mapper een API waarmee je je gegevens kunt ophalen of manipuleren.

Voordeel: je hoeft geen sql te schrijven, die wordt namelijk voor je gegenereerd.
Nadeel: learning curve.

edit: half overblijfsel van gedachtenkronkel weggehaald

[ Voor 13% gewijzigd door D-Raven op 28-09-2008 23:40 ]


  • YopY
  • Registratie: September 2003
  • Laatst online: 06-11 13:47
Idee 1 en idee 2 lijken mijns insziens een beetje te conflicteren - de eerste is een abstractie van SQL queries, de tweede een manier om gegevens uit de database te halen - in veel database-abstractielagen wordt er juist een combinatie van deze twee gebruikt, het 2e idee definieert een aantal functies (bijv een find() functie die het record met het meegegeven ID opzoekt), het 1e wordt gebruikt om de query die daarvoor nodig is op te bouwen.

Bij beide punten zit je overigens wel op het goede spoor. Je zou naar een van de vele ORMs kunnen kijken, bijvoorbeeld Hibernate (voor Java) of Doctrine (voor PHP), en zo zullen er ook genoeg zijn voor andere paketten.

Verwijderd

Topicstarter
Bedankt voor de reacties. Helaas bied het project niet de kans om deze leercurve te voltooien maar ik zal er later op terug kijken.

Door het lezen van de documentatie (die ik heb kunnen vinden) heb ik inmiddelds al uitgevoerd idee gemaakt.

Door middel van eisen en interfaces worden SQL codes uitgevoerd. De column namen ed wordt doormiddel van code reflection gegenereerd. :)

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 15-11 14:51
Wellicht kan je hier bijvoorbeeld eens naar kijken: http://manual.cakephp.org/view/67/Understanding-Models Best duidelijk verwoord hoe ze zo'n mapping doen inclusief de relaties tussen diverse tabellen e.d.