Normalisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Business Intelligence Developer

Dit is de rol Boels pitstop De organisatie Boels is zich aan het professionaliseren en digitaliseren. Jij gaat hier een grote rol in spelen. Wat doet de organistaie Boels? Hoe doen we het? Waar staan we? Waar willen/moeten we naartoe? De afdeling BI krijgt steeds meer (aan)vragen voor dashboards/data etc. vanuit de organisatie om dit te onderzoeken. Dit doen we centraal vanuit Sittard. Als Business Intelligence Developer werk je aan projecten (klein of groot), waar we met data inzichten verschaffen aan onze organisatie. Je denkt mee met onze interne stakeholders, draagt initiatieven aan en zorgt er vervolgens voor dat de

Bekijk vacature »

Senior Java Developer

Bedrijfsomschrijving Als Senior Java Developer kom je te werken bij een internationaal gerenommeerd onderzoeksinstituut. Dagelijks is dit instituut verantwoordelijk voor de juiste samenwerking, toegankelijkheid en communicatie voor circa 9000 interne gebruikers. In een team van elf ontwikkelaars ben je als Senior Java Developer verantwoordelijk voor het ontwikkelen van functionele ontwerpen naar technische oplossingen. Deze projecten bestaan o.a. projecten zoals het implementeren van Elastic Search en het koppelen van CMS. Ook fungeer je als vraagbaak voor je collega’s op het gebied van backend softwareontwikkeling. Daarnaast denk je graag mee op het gebied van architectuur qua mogelijke oplossingen en innovatie. Momenteel zijn

Bekijk vacature »

Backend PHP developers voor scale-up organisatie g

Bedrijfsomschrijving Voor een snelgroeiende scale-up organisatie met een start-up mentaliteit ben ik op zoek naar een medior/senior Backend PHP developer! Wie ben jij? Jij bent een ervaren PHP developer die het leuk vindt om mooie codes te schrijven in een leuk, gezellig en jong team. Het is een frisse en moderne organisatie waar de leeftijd tussen de 25 en 40 jaar ligt. Naast dat het een mooie organisatie is hebben ze een hip en modern kantoor die goed bereikbaar is met het openbaar vervoer en de auto. Je krijgt hier als developer dé mogelijkheid om aan een groot avontuur te

Bekijk vacature »

Python Developer Data Science

Bedrijfsomschrijving Onze klant biedt financiële dienstverlening aan organisaties binnen de non-profit sector. Hierbij kun je denken aan overheden en instellingen met een maatschappelijk belang. In vergelijking met andere financiële dienstverleners staan zij er bijzonder goed voor. De organisatie heeft een open cultuur met vrij korte lijnen. Daarnaast zijn duurzaamheid en betrouwbaarheid termen die de organisatie kenmerken. Ter uitbreiding van één van de IT teams zijn zij op zoek naar een Python Ontwikkelaar met interesse voor Data Science. Grote hoeveelheden data zijn kenmerkend voor het applicatie landschap, waarbij aan de finance kant hier complexe data, formules en wiskundige berekeningen komen kijken.

Bekijk vacature »

Software Architect / Developer / C# / Azure / CQRS

Bedrijfsomschrijving Als Software Architect/Senior Developer kom je te werken bij een organisatie in regio Veenendaal wiens core business software development is voor oplossingen voor de vastgoed branche. Deze applicaties vormen de basis voor financiële processen en planningen en worden door een groot tal gerenommeerde organisaties in Nederland gebruikt. Samen met een team van 15 collega's (bestaande uit ontwikkelaars, testers, UX/UI Designer en een Product Owner), verdeeld over Nederland en een andere locatie in Europa, ga je als Software Architect / Senior Developer aan de slag om het gehele platform te moderniseren. Hiervoor maakten ze gebruik van Delphi en is het

Bekijk vacature »

Functional Analyst

Zit je altijd vol ideeën over hoe dingen beter kunnen? Ben je graag bezig met verschillende opdrachten en vind je een uitdagende functie leuk? Bedenk je graag slimme oplossingen? Kom dan ons team versterken!! Gateway ontwikkelt en distribueert hèt standaard pakket voor Douane activiteiten. Hierbij gaat het om het sturen van aangiftes en ontvangen van retourberichten, koppelingen in verschillende formaten, real-time koppelingen met de Douane, zoals DTV, en veel meer. Alles gericht op de optimale controle over en inzicht in Douane processen. Met expertise, enthousiasme en kennis van de markt wordt er aanhoudend aan Gateway gewerkt – en al dit

Bekijk vacature »

Backend .NET Developer C# Voetbal

Bedrijfsomschrijving Binnen deze organisatie in de regio Den Haag zal je als .NET Developer terecht komen in een multidisciplinair team met 5 andere Programmeurs. In jouw rol ben je verantwoordelijk voor het ontwikkelen en optimaliseren van mobiele applicaties met meer dan 4 miljoen gebruikers wereldwijd. Als Backend Developer zal je dagelijks werken met C#, .NET Core, Kubernetes en een SQL Database. Voor het onderling communiceren van de microservices wordt gebruik gemaakt van RabbitMQ. Je krijgt energie van technische uitdagingen en je werkt graag samen. Verder zul je in vele projecten deelnemen, zorg je voor nieuwe features, los je diverse bugs

Bekijk vacature »

Erv.Software Ontwikkelaar voor slimme oplossingen

Dutch is mandatory for this position. Ervaren Software Ontwikkelaar voor slimme oplossingen binnen de Transport & Logistiek (C#.NET/Azure/65K/R’dam) Jij gaat samen met collega’s (complexe) logistieke vraagstukken oppakken, met als doel slimme software oplossingen te bedenken en te ontwikkelen. Een maaltijd box leverancier van Nederland was op zoek naar een oplossing om hun logistieke processen te optimaliseren en de klantervaring te verbeteren. Hiervoor is een app gebouwd die het hele distributie proces inzichtelijk maakt van magazijn tot bezorger, en van klantenservice tot aan klant. Je kan zien waar welke bezorger zich bevind, maar ook welke tempratuur de producten op dat moment

Bekijk vacature »

IT-traineeship junior software ontwikkelaar

Zoek jij een stevige uitdaging en de mogelijkheid om veel nieuwe dingen te leren in een dynamisch vakgebied? Doe mee aan ons IT Professional Program en ontwikkel jezelf tot software engineer! Je begint met een opleidingstraject van ongeveer 4 maanden. Hierin ga je aan de slag met verschillende technieken die je op conceptueel niveau leert te overzien en interpreteren. Onderwerpen die aan bod komen zijn o.a. programmeren (Java/C#/Python), Object Oriëntatie, Databases, Webservices & webtechnologieën, Domain Driven Design en Continuous Integration/Continuous Delivery. Sommige van deze onderdelen sluit je af met een examen en bijbehorende certificering. Het opleidingstraject zelf sluit je af

Bekijk vacature »

Typescript Developer Internationaal

Bedrijfsomschrijving De organisatie waar jij als TypeScript Developer komt te werken is te karakteriseren als een handelsonderneming en een echt familiebedrijf. Het bedrijf is internationaal bekend en is gelegen in Utrecht. Er wordt veel waarde gehecht aan een open en laagdrempelige bedrijfscultuur. Als TypeScript Developer met een hands-on mentaliteit zal jij de hoofdverantwoordelijke worden voor de continuïteit en toekomst van de TypeScript webapplicaties. Deze applicaties dienen gekoppeld te worden aan het huidige IT-landschap binnen de organisatie en worden gebouwd middels TypeScript, Angular, NodeJS en GraphQL. Jij zal dus het echte pionierswerk verrichten. Voor dit pionierswerk krijg jij als Developer de

Bekijk vacature »

Lead Full Stack Developer / Mobile Apps / C# / Rea

Bedrijfsomschrijving Als Full Stack developer kom je te werken bij een organisatie in regio Ede die gespecialiseerd is in het ontwikkelen en implementeren van software. Zo hebben ze een eigen ontwikkelde applicaties in de markt gezet voor de agrarische sector die internationaal zeer succesvol is en waar grote vraag naar is. Door deze software worden klanten op een slimme manier ondersteund bij voorraden, administratie, het maken van planningen en nog veel meer. De laatste tijd neemt de vraag naar mobile applicaties toe die klanten real time van de correcte informatie voorzien en het mogelijk maken om onder andere data registraties

Bekijk vacature »

New Business Developer ICT - Noord-Holland - &euro

Wat ga je doen? Als New Business Developer ICT ben jij de verbindende schakel tussen je werkgever en nieuwe klanten. De diensten die jij aan te bieden hebt variëren van klant tot klant. Je helpt je klanten met het vinden van de juiste oplossingen voor hun vraagstukken in de Logistiek dmv een prachtige software tool. Juist deze oplossingen die jij je klanten aan kan bieden zijn uniek omdat alles volledig aangepast kan worden naar de vraag van de klanten. De focus ligt niet op het waarmaken van de klantverwachtingen, je wordt verwacht om altijd te streven naar het overtreffen van

Bekijk vacature »

Medior/Senior PHP Developer / Marketing / Impact

Bedrijfsomschrijving Deze informele organisatie brengt campagnes naar ongekende grote hoogtes! Jij kan als PHP Developer echt impact maken voor klanten en hun marketing succesvoller laten worden. Dat door je voor bekende organisaties zoals de NS, Peugeot, Achmea, KvK, Eneco en Miele. Binnen dit bedrijf heerst er een informele, plezierige en open sfeer. Bij onze opdrachtgever ligt er veel aandacht op persoonlijke ontwikkeling. Je gaat hier namelijk vrijheid krijgen om op je eigen manier invulling te geven aan je werk, maar je kan altijd op je collega’s terug kunnen vallen voor advies en tips. Functieomschrijving In de functie van PHP Developer

Bekijk vacature »

Senior C# Developer

UPS Nederland zoekt een Senior Developer C# * Remote werken mogelijk Wil jij werken aan complexe IT-systemen bij een van de grootste logistieke werkgevers ter wereld? Als ontwikkelaar bij UPS werk je aan opkomende technologieën en DevOps processen om ervoor te zorgen dat onze logistieke processen zo soepel en efficiënt mogelijk verlopen. Dit ga je doen Je bent betrokken bij alle facetten van applicatieontwikkeling. Je bent betrokken bij alle facetten van applicatieontwikkeling: van ontwerpen en bouwen tot testen en implementeren. Je levert ontwerpen die passen bij de onderliggende frameworks en concepten, bouwt efficiënte en testbare code, identificeert en integreert modulaire

Bekijk vacature »

Java Software Developer – Smart Logistics

Bouw jij de professionele applicaties die onze klanten zo hard nodig hebben? En wil je graag met de nieuwste technologieën werken binnen een DevOps team? Lees dan snel verder! Wat ga je doen? “Use digital to move smarter De unit Smart Logistics binnen de Transport & Logistics sector van CGI ontwerpt, bouwt en onderhoudt veelal missie-kritische applicaties voor onze klanten uit de transport en logistieke sector. Zonder deze sector worden onze pakketjes niet op tijd afgeleverd, rijden de treinen niet meer van a naar b en varen schepen niet veilig de haven binnen. Om deze transport en logistieke ketens te

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?

*
http://www.plaatjesdump.nl/upload/2f70b44b8134d3983fe60ce57906dcbe.png

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

PHP hulp

11/05/2021 16:40:17
 
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.

http://www.plaatjesdump.nl/upload/b74bd870918b3246b55a6dcee8616347.png
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.