Object-relational mapper en Microsoft Access

Pagina: 1
Acties:

  • -RenE-
  • Registratie: September 2001
  • Laatst online: 30-11 22:56
Mij is gevraagd om een admin frontend te schrijven voor een applicatie, die in Django (Python) is geschreven. Het front-end moet in MS Access/VBA worden geimplementeerd oa ivm koppelingen naar het factuursysteem en MS Word voor het genereren van rapporten.

Nu maakt Django gebruik van PostgreSQL en een Object-relational mapper. Voor zover ik heb begrepen zal elke wijziging van de code van het datamodel in Django leiden tot een veranderde database en dus problemen opleveren met de Access koppeling. Hoe kan ik beide dan koppelen?

  • -RenE-
  • Registratie: September 2001
  • Laatst online: 30-11 22:56
Niemand die mij hierbij van advies kan voorzien??

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 18:22

Dricus

ils sont fous, ces tweakers

Bij (bijna) alle Object Relational Mapping (ORM) toolkits zullen wijzigingen in de structuur van je database onherroepelijk leiden tot wijzigingen in de structuur van je broncode. Dit geldt natuurlijk wel alleen maar als je persistente eigenschappen van classes wil gaan toevoegen, verwijderen of veranderen of als je entiteiten aan het datamodel wil toevoegen of eruit wilt verwijderen.

Ik vraag me eigenlijk een beetje af of het niet zo is dat je een probleem ziet waar er geen is... Ik begrijp dat je een front-end voor een bestaande applicatie moet maken. Dit impliceert dat je dus moet opereren op de bestaande data structuur en dat wijzigingen in de code van het datamodel dus uit den boze zijn.

Relevante vragen zijn:
  • Moet je communiceren met de applicatie waar het front-end voor geschreven wordt of hoef je alleen maar contact met de database te hebben?
  • Wil je vanuit je MS Access/VBA applicatie gebruik maken van de Object Relational Mapper van Django?
  • Zijn er wijzigingen in het datamodel nodig om het front-end te maken?

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


  • -RenE-
  • Registratie: September 2001
  • Laatst online: 30-11 22:56
[b][message=27131685,noline][...]
Relevante vragen zijn:
  • Moet je communiceren met de applicatie waar het front-end voor geschreven wordt of hoef je alleen maar contact met de database te hebben?
  • Wil je vanuit je MS Access/VBA applicatie gebruik maken van de Object Relational Mapper van Django?
  • Zijn er wijzigingen in het datamodel nodig om het front-end te maken?
Ik heb alleen toegang nodig tot de database en voor het frontend moeten er inderdaad wijzigingen nodig in het datamodel. Zij het dat deze vrij goed te scheiden zijn: de veranderingen die ik doorvoer hebben geen effect op de webapplicatie.
Misschien maak ik het probleem inderdaad groter dan het is. Helaas is het zo dat de applicatie in Django nog niet af is. Er worden ook wijzigingen in het het datamodel aangemaakt en Django vertaalt dat keurig naar een nieuwe database, met nieuwe/veranderde entiteiten en attributen.
Eigenlijk zou dus eerst het datamodel netjes moeten worden uitgewerkt en dit verplicht moeten zijn voor de frontend en backend ontwikkelaaars. Toch?

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 18:22

Dricus

ils sont fous, ces tweakers

[b][message=27136186,noline]-RenE- schreef op zondag 17 december 2006 @ Eigenlijk zou dus eerst het datamodel netjes moeten worden uitgewerkt en dit verplicht moeten zijn voor de frontend en backend ontwikkelaaars. Toch?
Inderdaad. Ontwikkelen op een datamodel dat nog in ontwikkeling is is altijd lastig en levert veel extra werk op omdat database wijzigingen vervolgens ook weer leiden tot aanpassingen in de software. Ik zou je willen adviseren om eerst het datamodel uit te werken en af te maken. Als je zorgt dat je je datamodel van tevoren goed op orde hebt gaat je dat veel tijd schelen t.o.v. je datamodel mee-ontwikkelen met je applicatie.

Heb hierbij niet de illusie dat je je datamodel van tevoren voor de volle 100% af kunt krijgen. Het zal altijd wel gebeuren dat er hier en daar nog eens een attribuut bijkomt, wijzigt of wegvalt. Maar als je er van tevoren goed over nagedacht hebt zullen dit soort wijzigingen een stuk minder rigoreus zijn dan als je dat niet doet.

(Zoals je ziet ben ik een groot voorstander van model-based development :). Hierbij zie ik eigenlijk nog het liefst dat een object georienteerd model gebruikt wordt als basis voor een relationeel model.)

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...