Normalisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior PHP developer

Functie Als Senior PHP developer heb je een sterke mening over de architectuur van projecten en de processen binnen het team. Je bent de sparringpartner voor je Team Lead. Ook ondersteun je met jouw kennis de minder ervaren developers in jouw team. Ze werken regelmatig aan projecten vanaf scratch en dit geeft ruimte om voor nieuwe technieken te kiezen. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en

Bekijk vacature »

Senior Front end developer Automotive Angular

Functie Als Senior Front end developer kom je te werken in een team van 11 developers. 9 van de 11 focussen zich op back end, welke is geschreven in Java, en 2 op de front end waarbij er gebruik wordt gemaakt van Typescript en Angular. De focus in deze rol ligt op 2 aspecten; doorontwikkeling van de eigen tooling en gebruik van de tooling t.b.v. klantprojecten. Momenteel zijn ze in de afrondende fase van een project waarbij ze het gehele verkoopproces van nieuwe auto’s anders ingeregeld hebben voor een grote dealer in Nederland. Waarbij Auto’s normaliter pas verkocht werden in

Bekijk vacature »

Account Developer

Voor Bol.com zijn wij per direct op zoek naar een Account Developer voor 32-40 uur per week op het kantoor in Utrecht. Wil jij een directe bijdrage leveren door partners van de juiste data-inzichten te voorzien en via campagnes op nieuwe platformkansen en features te wijzen? Ben jij analytisch sterk en kun jij dit vertalen naar plannen en inspirerende gesprekken? Lees dan snel verder! wat bieden wij jou Salaris van €2400 - €2600 obv 40 uur Minimaal 6 maanden Werklocatie is Utrecht Werken bij bol.com wie ben jij Jij bent commercieel gedreven en weet altijd aan de juiste knoppen te

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

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 »

Full Stack .NET Developer

Dit ga je doen Als developer nieuwe gave features ontwikkelen; Werken met technieken als C#, Angular 12 en Javascript,; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een team van 7 professionals ben je als Full Stack .NET Developer verantwoordelijk voor het ontwikkelen van applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Wil je van meerwaarde

Bekijk vacature »

Back-end developer (Magento2)

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »

Mendix Developer

For our client in Amsterdam, we are looking for a Senior Mendix Developer. Company description Our client is an IT Consultancy company who’s been active for 10 years now. With their ambitious team, they are working with different clients in order to help them with analyzing their data and giving advice to them, regarding how they can use their data in the smartest ways, or to make sure that their mobile or web applications are working efficiently. As you get a glimpse of various industries, it is guaranteed that no day will be the same. Job description As a Mendix

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc 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

Bekijk vacature »

Senior SQR Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13333 Introductie Are you passionate about contributing to the world's most advanced machines. Do you thrive in a challenging environment working with highly motivated and skilled teams? If so, we have the perfect opportunity for you! We are seeking a Senior Software Design Engineer for Sequence Tooling to play a critical role in creating and maintaining mission-critical software applications. In this role, you will focus on achieving maintainable software architecture that is transparent and easy to extend while maintaining a strong focus on software quality. You will work closely with

Bekijk vacature »

Starter/junior PHP developer

Functie Momenteel zijn ze op zoek naar een junior PHP developer om het team te versterken. Als back-end developer bouw je de enterprise software die hun bedrijf helpt bij haar primaire processen. Afhankelijk van de omvang van het project werk je in een klein team aan een project. Ze hebben dagelijkse stand-ups en elke twee weken een scrumsessie, begeleid door de Scrum Master, waar je je ideeën kunt presenteren en samen met de Product Owner kunt werken aan het beste product. Ze vertrouwen enorm op hun eigen bedrijfssoftware. Dit geeft hun een groot voordeel ten opzichte van hun concurrentie. Zo

Bekijk vacature »

Experienced Lead Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Delft Vacature ID: 13301 Introductie We are seeking a Lead Java Developer for our team in the area of Delft. You will develop an application used exclusively by the engineers and geologists for site characterizations, which imports raw field and laboratory measurements for further processing, integration, ground modelling, and geotechnical analysis and reporting. The client/server application is entirely written in Java, and the server is hosted in the Amazon cloud, utilizing frameworks such as Spring and Hibernate, and connected to an MS SQL Server RDS instance. There is a trend towards using more

Bekijk vacature »

.NET developer WO niveau voor predictive software

Bedrijfsomschrijving Dit bedrijf uit Den Bosch is om precies te zijn 15 medewerkers groot en ze ontwikkelen (predicitve) planning software. Dit doen zij voor allerlei mooie en bekende organisaties (bierbrouwerijen, gemeentes, oliemaatschappijen en diverse multinationals). Wegens meer en grotere vraag vanuit de klanten komen er nu posities vrij voor onder andere een .NET developer. Het bedrijf is goed met openbaar vervoer te bereiken. Functieomschrijving Je komt hier te werken in een team van 3 .NET developers en bent betrokken bij het gehele ontwikkelproces. Dus van idee naar ontwerp en van ontwikkeling tot testen en implementatie. Bij voorkeur ben je niet

Bekijk vacature »

Node.js developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Full Stack C#.NET developer

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

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

02/06/2024 11:50:23
 
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.