Normalisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Functioneel Applicatiebeheerder

Wij van CNB zijn op zoek naar een leergierige Functioneel Applicatiebeheerder CNB is de grootste dienstverlener in de markt van bloembollen en vaste planten. In deze markt verricht CNB de volgende diensten: bemiddeling, veilen en het koelen en prepareren van bloembollen. Vanuit ons hoofdkantoor in Lisse werken bijna 100 collega’s dag in dag uit aan de bemiddeling van bloembollen. In Bovenkarspel vindt het koelen en prepareren van de bloembollen plaats. Wij zijn op zoek naar een enthousiaste Functioneel Applicatiebeheerder die naast een applicatie, ook sfeer kan bouwen! Jij: Vindt het leuk om binnen een klein IT-team aan de slag te

Bekijk vacature »

Lead Java Developer

Dit ga je doen Je taken bestaan onder andere uit: Het aansturen van een development team bestaande uit 8 collega's op technisch maar ook HR gebied; Het maken van strategische keuzes omtrent de (nieuw)bouw van deze applicatie; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java, Spring, Angular, REST); Reviewen van code en feedback geven op collega developers. Hier ga je werken Als Lead Software Developer ben je verantwoordelijk voor één van de vier Agile Java ontwikkelteams die bouwen aan technologie die duizenden instanties wereldwijd verbindt. Dit Agile team, data Jira en Confluence gebruikt en

Bekijk vacature »

.NET Developer te Naarden

Bedrijfsomschrijving Voor mijn klant ben ik op zoek naar een .NET Developer om het huidige team te komen versterken. Deze organisatie bevindt zich in de logistieke sector, en zij hebben een eigen ERP systeem ontwikkeld dat zij inzetten ter optimalisatie van de logistieke processen van haar eindklanten. Deze organisatie bestaat inmiddels al ruim 20 jaar, waarbij zij een duidelijke missie hebben, namelijk: het werk van de eindklant makkelijker maken door de systemen die zij leveren. Ze werken over heel de wereld, wat deze organisatie een echte internationale speler maakt. Binnen de organisatie kenmerken ze zich door een dynamische en professionele

Bekijk vacature »

Technical Asset Specialist Substations

TenneT is growing fast to realize its strategic ambitions. We play a leading role in driving the energy transition. We are looking for a passionate Technical Asset Specialist for substations (onshore and offshore) at our location in Arnhem who will contribute to this and that might be you? Your contribution to TenneT We are searching for a motivated and engaged colleague as a technical asset specialist (onshore and offshore) for instrument transformers and surge arresters, with preferably a strong background in the area of insulation coordination. As a specialist for insulation coordination you are responsible for overarching topics regarding insultation

Bekijk vacature »

Java developer Zorgsysteem

Dit ga je doen Werken aan het eigen gebouwde zorgsysteem; Verbeteringen maken en toepassen binnen de applicatie; Jij gaat werken aan de Back-end van de applicatie en sporadisch werk je mee aan de Front-end; Samenwerken met andere teams voor een optimaal resultaat; Jij kan 'clean' werken en high quality code schrijven; Jij werkt resultaatgericht. Hier ga je werken De organisatie houdt zich bezig met diverse applicaties met betrekking tot zorgregistratie. Dankzij hun systeem komt alle informatie, omtrent de zorg van een patiënt, op een overzichtelijke en toegankelijke manier samen in één systeem te staan. Op deze manier is deze informatie

Bekijk vacature »

Embedded Developer C++

Functie omschrijving Ben jij op zoek naar een leuke uitdaging als Embedded Developer, zoek dan niet verder! Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een Embedded Developer die graag met Embedded Devices werkt. Je zult verantwoordelijk worden voor het ontwikkelen en onderhouden van diverse producten. Jouw specialisatie ligt op het vlak van software, hardware en back-end. Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen

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 »

Mendix Developer

Voor Troostwijk Groep zoeken wij een: Mendix Developer Wij zoeken Je bent een getalenteerde en ervaren Mendix Developer en het is tijd om je horizon te verbreden. Je wilt minder coderen en meer modelleren, minder bezig zijn met allerlei technische details en randvoorwaarden en meer met functionaliteit. Daarnaast ben je trots op de innovatieve en gebruiksvriendelijke applicaties die je in de loop van de jaren hebt gebouwd. Werk je graag in een enthousiast team, wil je veel vrijheid en kun je tegelijkertijd goed met deadlines omgaan, dan ben jij absoluut degene die wij zoeken! Wat je nodig hebt is ruime

Bekijk vacature »

.NET Developer

Functie omschrijving Jij gaat in de functie van Software Developer werken met C# en .NET framework. Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met back-end development. Verder staat dit

Bekijk vacature »

Senior Front-end Developer

Dit ga je doen Met behulp van diverse programmeertalen ontwikkelen van Front-end software; Het begeleiden van het front-end team; Het oplossen van incidenten; Het bijhouden van een backlog; Je hebt een actieve bijdrage in de wekelijkse overleggen met de omliggende teams; Je houdt trends bij en adviseert het management hierover waar nodig; Helder communiceren met de stakeholders om hen zo mee te nemen in projecten en laten inzien wat de duur en toegevoegde waarde van bepaalde projecten is. Hier ga je werken Deze organisatie heeft circa 40 miljoen bezoekers per maand en heeft innovatie hoog in het vaandel staan. Het

Bekijk vacature »

PHP Developer

As a PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a 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 job suits you. You enjoy doing this Writing vanilla PHP code. Working with

Bekijk vacature »

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

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 »
Jasper DS

Jasper DS

29/05/2013 21:26:42
Quote Anchor link
Goede avond,

ik wil een database aanleggen voor de muziekgroep waarin ik speel. We willen:

1) informatie over de leden in de database steken (+wachtwoord voor authenticatie)
2) al onze bezittingen inventariseren zoals:
- truien
- schoenen
- instrumenten
3) bijhouden welk lid welk instrument / trui / ... heeft
4) een geschiedenis bijhouden van wie wat wanneer heeft gehad

Actieve leden hebben normaal altijd een trui, schoenen en een instrument maar, tussen onze ledenlijst zitten ook ex-leden (= status niet actief) zei hebben ooit spullen gehad maar toen ze stopten zijn deze naar iemand anders gegaan.

Ik maakte volgende db-structuur*, heeft iemand nog tips over de normalisatie?

*
Afbeelding

Alvast bedankt,
Jasper
Gewijzigd op 29/05/2013 21:27:01 door Jasper DS
 
PHP hulp

PHP hulp

19/04/2024 12:32:21
 
TJVB tvb

TJVB tvb

30/05/2013 11:53:03
Quote Anchor link
Je koppel tabel is onlogisch. 1 tabel voor verschillende soorten koppelingen.

Ik zou per koppeling een koppel tabel maken en daarin een begin en einddatum zetten. (Het kan toch ook zijn dat een trui een tijdje bij niemand is)
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

30/05/2013 19:55:22
Quote Anchor link
Even een aanzetje:
Jasper DS op 29/05/2013 21:26:42:
ik wil een database aanleggen voor de muziekgroep waarin ik speel. We willen:

1) informatie over de leden in de database steken (+wachtwoord voor authenticatie)
2) al onze bezittingen inventariseren zoals:
- truien
- schoenen
- instrumenten
3) bijhouden welk lid welk instrument / trui / ... heeft
4) een geschiedenis bijhouden van wie wat wanneer heeft gehad

Actieve leden hebben normaal altijd een trui, schoenen en een instrument maar, tussen onze ledenlijst zitten ook ex-leden (= status niet actief) zei hebben ooit spullen gehad maar toen ze stopten zijn deze naar iemand anders gegaan.

Wat je eigenlijk moet doen is je vraagstelling vertalen in tabellen:
Dus (1) ik heb leden van de band;
tabel leden: lid_id, naam, etc.

(2)
tabel bezittingen: bezitting_id, bezitting_name

(3)
tabel lid_heeft _bezitting: lid_id, bezitting_id

Als je bezittingen overdraagbaar wilt hebben, heb je de koppeltabel nodig.
 
Joakim Broden

Joakim Broden

30/05/2013 20:54:07
Quote Anchor link
tabel leden: id, name, email etc
tabel bezittingen: id, name, description etc
tabel koppeltabel: id, user_id, product_id, start_date, end_date etc (aan de hand van start_date en end_date kun je zien of het lid ze nog heeft etc, eventueel kun je dit uitbreiden met een 'active' veld)
Gewijzigd op 30/05/2013 20:55:24 door Joakim Broden
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

30/05/2013 22:44:35
Quote Anchor link
Voorkauwen heeft geen nut.
En de stomste 'fout' die altijd gemaakt wordt is om maar altijd een pk kolom de naam id te geven.
 
Jasper DS

Jasper DS

30/05/2013 22:45:44
Quote Anchor link
Bedankt voor de reacties!

TJVB, jij zou dis een KOPPEL_TRUI en een KOPPEL_INSTRUMENT tabel maken? En aan die koppeltabel een startdatum en een einddatum toevoegen?

Ger en Hertog, jullie zouden 1 tabel bezittingen maken en daar alle soorten insteken? En dan één koppeltabel en einddatum.

Wat ik eventueel zou kunnen doen is een user STOCK aanmaken waaraan ik de bezittingen hang die niemand gebruikt. Het moeilijke aan de tabel bezittingen is dat dit inderdaad gaat voor een trui of een schoen maar een instrument heeft niet dezelfde waardes dus dat wordt dan sowieso een aparte tabel.

Afbeelding
Gewijzigd op 30/05/2013 22:49:09 door Jasper DS
 
Joakim Broden

Joakim Broden

30/05/2013 23:02:15
Quote Anchor link
Ger van Steenderen op 30/05/2013 22:44:35:
En de stomste 'fout' die altijd gemaakt wordt is om maar altijd een pk kolom de naam id te geven.

Hoezo is dat fout? Ik zou zo niet 123 weten wat er fout aan is

Ik vind lid_id vind ik juist irritant en totaal overbodig. Je zit al in de tabel leden, waarom dan nog eens de een extra omschrijving lid_id, dan is id duidelijk zat.
Gewijzigd op 30/05/2013 23:20:05 door Joakim Broden
 
Reshad F

Reshad F

31/05/2013 00:50:31
Quote Anchor link
@Hertog Jan Wat Ger hiermee wil zeggen is dat een PK niet altijd een ID hoeft te zijn dus je kan net zo goed een ander unieke kolom nemen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

31/05/2013 08:14:19
Quote Anchor link
@Hertog Jan,
Ik had fout tussen aanhalingstekens gezet, omdat het ook niet echt fout is.
Ik heb toevallig op mijn andere scherm een query over 7 tabellen voor me, waarvan er 6 een id kolom hebben en 5 een naam kolom. Mag jij mij uitleggen hoe duidelijk alleen id dan is.

@Jasper,
Je hebt één koppeltabel op leden, bezittingen en instrumenten. Het is ongebruikelijk maar kan wel, maar dan moet je wel er voorzorgen dat de id's van bezittingen en instrumenten elkaar niet overlappen.

Je kunt uit de start- en einddatum in de koppeltabel afleiden of iets al dan niet in gebruik is, dus daar hoef je geen aparte tabel voor te maken.

Een koppeltabel heeft geen eigen id nodig, de PK is de combinatie member_id en bezitting_id
 
Jasper DS

Jasper DS

31/05/2013 10:41:08
Quote Anchor link
Ja inderdaad daar had ik nog niet over nagedacht. Zou ik dan toch niet opteren voor 3 koppeltabellen? En de end-date blijft dan leeg tot het object terug in de stock gaat?
 
Jeroen VD

Jeroen VD

31/05/2013 10:47:50
Quote Anchor link
bekijk de volgende tutorial eens: van een andere kant bekijken nooit verkeerd:
http://www.phphulp.nl/php/tutorial/overig/welke-tabellen-heb-ik-nodig-/773/
 
Jasper DS

Jasper DS

31/05/2013 10:53:54
Quote Anchor link
Ik ben het niet eens met uw tutorial, naar mijn mening word een leraar gekoppeld aan één of meerdere klassen per lesuur en niet aan n-leerlingen, die n-leerlingen zijn immers een klas.

Je DB-model zou er dus anders uit zien. Verder denk ik ook niet dat die tutorial mij verder kan helpen...
 
Jeroen VD

Jeroen VD

31/05/2013 11:00:11
Quote Anchor link
kan ook, als jij een klas als aparte eenheid wilt zien... ik zie een klas bestaande uit een n aantal personen.... die je op dezelfde manier kan koppelen. maar dat is verschil van mening.

en de bedoeling van de tutorial is eens een wat andere manier te laten zien ;) die heel vaak een hele snelle eerste opzet geeft die makkelijk te normaliseren is in mijn opzicht
 
Jasper DS

Jasper DS

31/05/2013 11:03:09
Quote Anchor link
Hoe zou jij mijn voorbeeld dan normaliseren? Ik kom via jouw methode op dezelfde structuur uit.

1 tabel leden
1 tabel truien
1 tabel schoenen
1 tabel instrumenten
1 koppeltabel voor truien
1 koppeltabel voor schoenen
1 koppeltabel voor instrumenten
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

31/05/2013 11:34:23
Quote Anchor link
Je kan truien en schoenen in 1 tabel samenvatten, stel in de toekomst besluit je de leden ook van ondergoed te voorzien, dan moet je weer een tabel (onderbroekenlol) en een koppeltabel bijmaken.
Normaliseren is een middel om een goed beheersbare database te verkrijgen. Het aanpassen van de database structuur als je uit de ontwikkelfase bent is not done.
 
Jasper DS

Jasper DS

31/05/2013 11:42:17
Quote Anchor link
Op dit moment hebben truien en schoenen (riemen hebben we ook) een eigen volgnummer dus er is een trui met nummer 1, een schoen met nummer 1 en een riem met nummer 1...
 
Eddy E

Eddy E

31/05/2013 11:59:41
Quote Anchor link
Toch allemaal kleding.
Desnoods categorieën aanmaken voor kleding (vest, broek, riem, schoen, jas, sjaal, muts).
 
Erwin H

Erwin H

31/05/2013 12:25:34
Quote Anchor link
Het ligt en beetje aan welke informatie per kledingstuk je wilt opslaan. Is dat allemaal hetzelfde? Dan naast het id ook een categorie zoals Eddy zegt en dan kan je alles in 1 tabel plaatsen, met 1 koppeltabel. Heb je juist verschillende info per kledingstuk, dan kan je ieder kledingstuk in zijn eigen tabel plaatsen, maar je zou er dan nog steeds voor kunnen kiezen om de koppelingen in 1 koppeltabel te plaatsen waarbij je naast id ook weer een categorie gebruikt om te koppelen. Heb je heel veel verschillende info per kledingstuk, dan kan je weer terug naar 1 tabel voor alle kledingstukken, maar sla je de info op in een aparte tabel waarbij je per rij 1 kenmerk van het kledingstuk opslaat. Dit is misschien wel de ultieme vorm van normalisatie die je meestal niet hoeft (en niet wilt) toepassen, maar wel extreem flexibel is.

In elk geval zou ik proberen om niet per kledingstuk een koppeltabel te hebben. Dat is juist weer erg inflexibel en je zal merken dat je dan bij aanpassingen al snel een hele rij queries aan het aanpassen bent.
 



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.