DB relaties -> object relaties, hoe?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack Developer

Functieomschrijving Voor een erkende werkgever in regio Etten-Leur zijn wij op zoek naar een Fullstack Developer met PHP/Laravel ervaring. Je gaat aan de slag met het bouwen van maatwerk software voor klanten die actief zijn in een specifieke markt. Als fullstack developer ben je samen met een enthousiast team van 7 collega’s verantwoordelijk voor de ontwikkeling, beheer en innovatie van informatiesystemen voor klanten in een specifieke branche. Verder ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Ervaring met Laravel is een must. Om de klant zo goed mogelijk te

Bekijk vacature »

.NET developer

Functie Voor jou als junior .NET ontwikkelaar staat er een flinke uitdaging klaar bij dit bedrijf waar jij veel van kan gaan leren. Zo willen zij een flinke uitbreiding doen op het webbased gedeelte dat zij nu hebben en willen zij het standaard deel gaan moderniseren. Jouw team is dan ook op zoek naar een junior .NET ontwikkelaar die het leuk vindt om op basis van research en development aan de slag te gaan. Jouw mening telt mee als het gaat om hoe en met wat deze applicaties gebouwd en herschreven gaan worden. Jouw functie bij dit bedrijf gaat dan

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 »

Back-end Developer Java

Dit ga je doen Het (door)ontwikkelen van een zelfgebouwde applicatie in Java, Spring Framework, SQL, HTML, CSS en Javascript; End-to-end beheer m.b.t. de applicatie en koppelen van applicaties binnen het landschap; Ontwikkelen van rapportages voor de interne organisatie; Ontwikkelen van aanvullende functionaliteiten m.b.t. de applicatie; Uitvoeren van testen en code reviews. Hier ga je werken Binnen deze organisatie kom je te werken op de afdeling die medische gegevens verzamelt vanuit het hele land. Denk hierbij aan vertrouwelijke persoonsgegevens. Het team verwerkt al deze data met als doel het waarborgen en verbeteren van de kwaliteit van de zorg in heel Nederland.

Bekijk vacature »

Microsoft Acess Developer

Functieomschrijving Wat ga je doen? Heb jij ongeveer 3 jaar ervaring als Software Developer, en komen de volgende kennisgebieden jou niet vreemd voor: MS Acces, C# & SQL? Vind jij het daarnaast leuk om maatwerk software te ontwikkelen voor klanten in een bijzondere branche? Lees dan snel verder! Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te

Bekijk vacature »

Frontend Developer Vue Nuxt HBO Javascript

Samengevat: Deze werkgever levert elke dag betere digitale gebruikerservaringen. Ben jij geschikt als frontend Developer? Heb je ervaring met Vue en Nuxt? Vaste baan: Front-End Developer HBO €3.100 - €4.600 Zij bieden opdrachtgevers een complete dienstverlening op gebied van ontwerpen en ontwikkelen van websites, zoekmachine optimalisatie, online adverteren, content marketing en conversie verbetering. Zij werken met een eigen ontwikkeld CMS. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om de inzet van technologie. Deze werkgever staat open voor elke nieuwe trend. Onze systemen zijn groot

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het development team. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met

Bekijk vacature »

Front-end developer (Medior/Senior)

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

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 »

Software developer

Werkzaamheden voor jou als software developer Voor een goede relatie in de regio Zwolle (meerdere locaties) zoeken wij een software developer die betrokken is bij de ontwikkelcyclus en verantwoordelijk is voor het testen en keuren van nieuwe en geoptimaliseerde software. In deze functie ben je in de implementatiefase de persoon die risico's beoordeelt en intern oplossingen aanbrengt om risico's te verkleinen. Binnen het ontwikkelteam van de software ben je een belangrijke schakel waar je intensief meewerkt met scrum. Het voorkomen van bugs in de programma's en het bevorderen van gebruiksvriendelijkheid voor eindklanten zijn voor jou een uitdaging en geeft voldoening

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving Voor de gemeente Amsterdam zijn wij op zoek naar een softwareontwikkelaar Cleopatra. De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van brom- en snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie. Functie

Bekijk vacature »

Full stack developer Python, React

Functie Jij als full stack developer komt binnen onze Technology afdeling te werken. Deze bestaat momenteel uit 15 man. De stack waarmee wij werken is voornamelijk Python, Javascript, React en GraphQL. Binnen deze afdeling wordt er met multidisciplinaire teams gewerkt aan verschillende projecten. Projecten duren vaak langer dan 3 maanden en je bent van begin tot eind vaak betrokken. Naast dat je als full stack ontwikkelaar aan de slag gaat ben je ook Consultant. Dit betekent dat je ook klantcontact hebt in je rol en werkshops geeft. De verhouding tussen deze werkzaamheden zijn ongeveer 70% development en 30% consultancy. Een

Bekijk vacature »

Als Front-end developer bijdragen aan het onderwij

Functie Als front-end developer om je terecht in een team van goede en ervaren developers, en ga je werken aan de software die door miljoenen mensen gebruikt wordt. Je bent in staat om designs effectief te vertalen naar werkende feautures en hebt oog voor een goede UX van het product. Je staat voor clean code en goede documentatie. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit software en code. Je dagelijkse werk bestaat uit het werken aan componenten in de Storybook. Het verbeteren en refactoren van de huidige

Bekijk vacature »

.NET Developer

Functie omschrijving .NET developer met ervaring gezocht! Voor een softwarebedrijf in de regio Veenendaal zijn wij op zoek naar een .NET developer met een aantal jaar ervaring. Jij bent zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Verder ben je bezig met nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en productspecialisten om zo mooie producten te creëren. Bedrijfsprofiel De organisatie waar je voor gaat werken is een snelgroeiende softwareleverancier en allround dienstverlener. Deze organisatie heeft zowel klanten die

Bekijk vacature »

Consultant Low Code Developer

Functie omschrijving Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Voor een mooie opdrachtgever in omgeving Delft zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten. Onderdelen functie Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan Mendix of Betty Blocks. Je bent verantwoordelijk voor

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

08/01/2025 04:57:47
 
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.