DB relaties -> object relaties, hoe?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back-end developer

Dit ga je doen Development d.m.v. XQuery, JSON/XML en REST API's; Ontwikkelen aan een tof en complex zorgplatform; Koppelingen maken met de NoSQL database; Testen en documenteren van de ontwikkelde functionaliteiten; Samenwerking met andere front- en back-end ontwikkelaars. Hier ga je werken Voor een vooruitstrevende organisatie binnen de zorg in Den Haag zijn wij opzoek naar een Back-end Developer die ervaring heeft met o.a.XQuery en Vue.JS of daarin graag zou willen ontwikkelen. Je zal ontwikkelen aan een tof en complex zorgplatform en koppelingen maken met de NoSQL database. Ook het testen en documenteren van de ontwikkelde functionaliteiten behoort tot jouw

Bekijk vacature »

NodeJS developer

Functie Als Fullstack developer kom je te werken in het ontwikkelteam. Je bent samen met je collega’s continu bezig om de software uit te breiden, maar hiernaast doe je onderzoek naar de inzet van nieuwe technieken, tools of bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Qua technische kennis zoeken ze iemand die goed op de hoogte is van de nieuwste ontwikkelingen, daar zij nu ontwikkelen op NodeJs back-end,

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je hier

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Senior front end developer Digital Agency Amsterda

Functie Wij werken in multidisciplinaire teams aan verschillende projecten, echter blijf je niet gebonden aan 1 team. Dit houdt in dat wij verschillende specialisten in dienst hebben en deze door middel van een roulatiesysteem in multidisciplinaire teams laten werken. Het team bestaat vaak uit Frontend developer(s), Backend Developer(s), Designer(s), Tester(s) en Mobile Developer(s). Deze teams worden afgewisseld waardoor jij de mogelijkheid krijgt om met iedereen een keer samen te werken. Als Frontend Developer ben jij ónze Specialist op dit gebied. Jij werkt mee aan verschillende projecten voor verschillende klanten. Denk bijvoorbeeld aan klanten, zoals’; BAM, IDFA en Ultimaker. Hierbij zorg

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Als junior .NET Developer lever je met jouw oplossingen direct een bijdrage aan de bedrijfsprocessen van de klanten. Werkzaamheden waar jij je zoal mee bezig houdt zijn; Het ontwikkelen, onderhouden en optimaliseren van de draaiende platforms van de klanten; Softwareontwikkeling middels C#, .NET; Klantcontact om de wensen te bespreken en uit te werken; Optimaliseren van de (huidige) bedrijfsprocessen; De IT-afdeling bestaat uit 30 personen verdeeld over 3 teams. Het team waar je in terecht komt bestaat uit ongeveer tien man. Het is een team wat bestaat uit betrokken collega’s, waar iedereen bereidt is om elkaar te

Bekijk vacature »

Back-End Web Developer

Als Back-End Web Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als Back-End Web Developer bij Coolblue? Als Back-End Web Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Als backend developer weet je de weg in PHP, kan je in Typescript een microservice op zetten of ben je bereid om dit te leren. Ook Web Backend Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen PHP

Bekijk vacature »

Senior PHP Developer

As a Senior PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible and you choach other colleagues on the hard and soft skills. How do I become a Senior PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the

Bekijk vacature »

Software Ontwikkelaar .NET te Zaandam

Bedrijfsomschrijving Je komt hier terecht bij een door-en-door softwarebedrijf, waarbinnen meerdere SaaS pakketten worden ontwikkelt voor diverse sectoren. Hierbij kun je denken aan bijvoorbeeld de logistieke en medische branche. Deze organisatie kenmerkt zich door de hoge mate van complexiteit in de applicaties, wat betekent dat jij je hier niet zal gaan vervelen. Integendeel: Jij gaat hier elke dag ontzettend veel leren en je in razend tempo ontwikkelen als C# .Net Developer met focus op back-end. Het team bestaat uit ongeveer 20 personen personen, waarvan het grootste deel zich richt op software development. De sfeer is informeel en professioneel. De producten

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde Java professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfs kritische systemen voor onze klanten in regio Noordoost zoals DUO, ING, CJIB en Tendernet. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We organiseren regelmatig technische Meetups en doen veel aan kennisdeling. Sogetisten hebben plezier in hun werk en staan

Bekijk vacature »

UX Writer (m/v/d)

UX Writer (m/v/d) Everything we do, starts with you. Together with you, we build the most human-centric fintech. We have the ambition to create the next. And - with Bertelsmann - a strong foundation to start from. Let’s make it new – for society and for yourself. Wij zijn op zoek naar een UX Writer (m/v/d) Fulltime - Op ons kantoor in Amsterdam of Heerenveen / deels vanuit huis Als UX Writer bij Riverty hou jij je bezig met onze strategie om daar te zijn waar onze gebruikers zijn en op de manier waarop zij ons nodig hebben, terwijl wij

Bekijk vacature »

Remote - Front-end Angular developer

Functie The IT team currently consists of the IT Manager, 2 back-end developers, 1 full-stack developer, 1 designer, and a DevOps engineer. They are currently looking for an experienced Front-end developer who will work autonomously and in a disciplined manner, being the only developer working on their Front-end applications at the start. They do have the ambition to find a second developer soon, who you will then be able to supervise. You will be working on the further development of their existing UI in Angular. But also developing a mobile app. They place great value on User Experience and opt

Bekijk vacature »

.NET Developer

Dit ga je doen Binnen het team bouw je aan een applicatie met andere .Net Developers, testers een Product Owner en een Business Analyst. Met het team wordt de backlog besproken. In overleg claim jij jouw deel en zorgt ervoor dat onderhoud en innovatie wordt gerealiseerd. Het project dat momenteel draait is het opgraden van de omgeving. Doorontwikkelen van de huidige applicatie; Overleggen met teamleden om de backlog te verdelen; Onderhouden van de huidige omgeving; Sparren met de business en het ophalen van nieuwe requirements. Hier ga je werken De organisatie is een van de grootste landelijke aanbieder van diverse

Bekijk vacature »

Belastingdienst - Freelance Applicatieontwikkelaar

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 6 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Hybride. Kantoordagen in Utrecht, incidenteel in Apeldoorn Functieomschrijving: De afdeling IV – Generieke Voorzieningen – Interactie Online is onderdeel van de keten Interactie. De missie van de keten is: “het faciliteren van de interactie met alle burgers, bedrijven en hun vertegenwoordigers om hen in staat te stellen aan hun fiscale verplichtingen te voldoen en aanspraak te maken op hun rechten.” De afdeling Interactie Online heeft een belangrijke bijdrage binnen deze keten. Dit door het ontwikkelen

Bekijk vacature »
Yorian

Yorian

12/11/2008 18:00:00
Quote Anchor link
In de database zijn mijn tabellen gekoppelt dmv 1:n relaties of vaak n:m relaties, een voorbeeld:
users, roles en users-to-roles
users, images en users-to-images

Nu vraag ik me af, hoe moet ik dit in de objecten doen, hoe maak ik die relatie? Maak ik de koppel class (userToRoles bijv, of imagesToUser) puur afhankelijk van de andere twee classes? Want die twee moeten opzich zelf kunnen werken zonder afhankelijk te zijn van een ander.

Hoe maak ik deze db relaties in de classes?
 
PHP hulp

PHP hulp

05/01/2025 01:59:28
 
Jan Koehoorn

Jan Koehoorn

12/11/2008 20:59:00
Quote Anchor link
De DB relaties hoeven niet per se in je classes terug te komen. Je kunt net zo goed een algemene database class hebben die je query's uitvoert.
 
Bo az

Bo az

12/11/2008 21:15:00
Quote Anchor link
Wat Jan zegt klopt, maar als je MVC gaat toepassen is dit inderdaad een reëel probleem waar je tegen aan loopt in je Model.

Als je deze relaties in models wil implementeren zijn er heel veel punten om over na te denken. Een van de belangrijkste punten is dat een database gewoon anders in elkaar zit dan een OO model. Niet iedere tabel hoeft een bij behorende klasse te hebben. Sterker nog een tabel kan wel meerdere klassen hebben die bij deze tabel horen.

Goed, jouw probleem met koppel tabellen. Ik denk dat dit afhangt van de koppel tabel, als deze alleen de primary key's van beide tabellen bevat, is er geen noodzaak tot het toevoegen van een klasse hier voor. Voorbeeld:
De primary key van users is use_id en de primary key van roles is rol_id.
De koppel tabel userrole bevat de kolommen use_id en rol_id
In dit geval kan ik me voorstellen dat je twee klassen hebt; User en Role
Ik zou de klasse user dan een eigenschap geven die een array met alle role objecten terug geeft en de klasse Role een eigenschap die een array met alle User objecten terug geeft.

Stel nu dat er een extra kolom uir_datumtoegekend in de koppel tabel had gezeten, dan zou het wel nodig zijn om een klasse voor deze tabel te maken.
 
PHP erik

PHP erik

12/11/2008 22:22:00
Quote Anchor link
Ik ben het niet met Boaz eens. Je kunt van te voren kiezen of je deze data abstraction in zijn geheel wèl of niet met objecten wil oplossen. In een goede OOP omgeving wil je dit wel. Als je kijkt wat veel gebruikt wordt in de OOP-wereld dan zie je bijvoorbeeld Java Beans, ActiveRecord en Data Access Service.

Die laatste is denk ik zeer geschikt. Google bijvoorbeeld eens op 'Zend SDO' en klik de eerste link, geschreven door IBM'ers. SDO (Service Data Objects) gaan net een stap verder dan puur data abstraction (zoals Zend_Db_Table) en data access (zoals PDO).

Er zijn 1000 keuzes te maken en het heeft alles te maken met applicatiearchitectuur en dat is een vak apart, maar ik zou zeker eens kijken naar Service Data Objects c.q. Data Access Service zoals in Java en PHP. Al is het om inzicht te krijgen in bepaalde methodes. Ook Zend_Db_Table zou ik eens bekijken om ideeën op te doen m.b.t. relaties.

Wat mijn verschil in mening met Boaz denk ik is is dat hij de Model ziet als Data Access/Abstraction, en ik de Model als meerdere separate lagen, waardoor het hele verhaal over koppeltabellen niet meer relevant is. De Model bevat al je business logic inclusief de data-laag die op zichzelf weer bestaat uit data access, data transfer en data abstraction. En ik ben voorstander die data-laag altijd in objecten te vormen voor flexibiliteit.
Gewijzigd op 01/01/1970 01:00:00 door PHP erik
 
Bo az

Bo az

13/11/2008 08:57:00
Quote Anchor link
PHPerik,

Ik heb het gevoel dat ik voor een iets eenvoudigere oplossing heb gekozen, maar helaas vind ik jou verhaal nogal onbegrijpelijk. Kan je duidelijk uitleggen wat nu het concrete verschil is tussen jou en mijn aanpak?
 
Yorian

Yorian

13/11/2008 13:23:00
Quote Anchor link
Nou, ik heb er over nagedacht en een oplossing gevonden (denk ik), ik houd gewoon de classes roles en users. De class users-to-roles of user-to-images zorgt in de db voor een relatie, en ook in de class is dit zo. Users en roles moeten apart kunnen werken, maar de relatie-class die er tussen zit is speciaal voor die relatie gemaakt (net als in de DB) het is dus niet erg als er binnen die class een hoop afhankelijkheid is.

Dit geld natuurlijk alleen voor n:m relaties, voor 1:n of n:1 zou dit anders zijn, daar ga ik nog even naar kijken.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.