Normalisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

Applicatiebeheerder/ Ontwikkelaar

Dit ga je doen - Verantwoordelijkheid dragen voor het complexe applicatielandschap; - Schakelen met eindgebruikers en leveranciers; - Verdeling in werkzaamheden tussen dagelijks beheer ontwikkelen; - Het analyseren van de behoeften van gebruikers en het vertalen hiervan naar functionele specificaties voor de applicaties; - Actief bijdragen aan het leveren van passende oplossingen voor het applicatielandschap. Hier ga je werken Deze organisatie, gevestigd in de regio van Amsterdam is een van de meest toonaangevende mediaorganisaties in Nederland. Door de organisatiecultuur krijg jij veel ruimte om initiatief te nemen en zelfstandig aan het werk te gaan. Samen met het IT team zorg

Bekijk vacature »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

Bekijk vacature »

Ervaren Full-Stack PHP Developer

Functieomschrijving Gezocht! Ervaren PHP Developer! Voor een organisatie in de regio Harderwijk zoeken wij een ervaren PHP Developer die het IT team van dit bedrijf gaat versterken. We zijn op zoek naar een enthousiaste en breed georiënteerde IT-er die het innovatieve bedrijf nog een stap verder kan brengen. Voor deze functie zoeken wij iemand die communicatief goed is en die zelfstandig problemen op kan lossen. Je werkt samen met een externe ontwikkelpartij en kunt hun dus uitdagen op het geleverde werk. Het schrijven van concepten aan de AI en hardware kant valt onder je verantwoordelijkheden. Het bedrijf noemt zichzelf een

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 »

C++ Ontwikkelaar

Functieomschrijving Ben jij als software ontwikkelaar toe aan een nieuwe uitdaging? Dan zoeken wij jou! Voor het maken van de procesbesturingssoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Ontwerpen, programmeren en testen van product aanpassingen; Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden, o.a. door middel van SCRUM; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Implementeren van nieuwe product

Bekijk vacature »

SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 13382 Introductie We is looking for a HANA Developer to work for our client. The candidate has to have an experience in building Data Intensive Applications (DIA’s). The role of a HANA Developer at ASML involves working on building Data Intensive Applications in an industrial/enterprise environment. The primary responsibility is to handle data from various sources and determine the best way to structure it for use by data analysts, who will run queries and algorithms against it for predictive and prescriptive analytics through machine learning. Wat verwachten we van jou?

Bekijk vacature »

Front end developer React

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

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 »

Informeel bureau zoekt Senior PHP developer

Functie Als senior PHP developer neem je het voortouw in ontwikkeltrajecten en ben je in staat werk uit te leggen aan collega’s om zo je kennis met hen te delen. Je deinst niet terug voor ingewikkelde projecten. Deze zie jij alleen maar als uit uitdaging. Je werkt doorlopend aan klantcases (en hierdoor je klant echt leert kennen), maar toch ben je afwisselend bezig. Dit alles in een vrije en ontspannen werksfeer, met een team van gelijkgestemde. Binnen de development teams werken ze met o.a. PHP, Laravel, React, Node, Elastic, Amazon AWS, JIRA, Solid, Domain-driven-design, Doctrine, Redis, docker, Kubernetes, CI, PHP

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

Front-end developer

Functie Als front-end developer kom je te werken in een team van 30 gedetacheerde, en het team is momenteel flink aan het groeien. Je hebt ervaring met het bouwen van complexe bedrijfsapplicaties waar je gebruik maakt van de nieuwste technologieën waarmee jij elke klant omver blaast. Het gaat om uitdagende projecten met een gemiddelde doorlooptijd van 2 jaar. Hierdoor heb jij echt de volledige focus op een project en kun je flinke impact maken. Het team zit boordevol met ervaren developers die samen dezelfde ambitie delen. Aan de hand van opleidingen en trainingen kun je certificaten halen in jouw expertise

Bekijk vacature »

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 »

Full stack developer Node.js

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

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

17/11/2024 19:27:39
 
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.