Normalisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-End Developer

As a Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a Front-End Developer at Coolblue? As a Front-End Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present these within the team. You also take pride in your work and welcome any feedback. Would you like to become a Front-End Developer at Coolblue? Read below if the job suits you. You

Bekijk vacature »

.NET Developer

Functieomschrijving Ben jij klaar voor de volgende stap in jouw carrière? Kom werken bij dit kleine softwarebureau en werk aan de gaafste maatwerk projecten. Je komt te werken in een klein development team en werk nauw samen met elkaar, om maatwerk software te leveren en bij te dragen aan bedrijfsautomatiseringen. Je gaat werken met de Microsoft stack en technieken als .NET, C#, Entity, MVC, SQL server. In de functie krijg je veel vrijheid om zelf beslissingen te nemen en je hebt impact op de bedrijfsprocessen. Bedrijfsprofiel Dit familiebedrijf bestaat al ruim 20 jaar. Zij hebben een vast netwerk van klanten,

Bekijk vacature »

Senior .NET developer

Functie As a Senior .NET developer you will work in our Research & development team. Our team consists of 17 colleagues! We are currently busy setting up a completely new architecture for a new product. We use VS2022 and .NET 6.0 for our new product. Your function is therefore mainly backend oriented. Since we develop measuring equipment for the chemical industry, it is also very important to develop high-quality software for its control. You are also responsible for designing, implementing and testing new features. For this position its also very important to ensure future-proof and sustainable architecture. Eisen - A

Bekijk vacature »

Software Developer C# - Deventer

Software Developer C# – Deventer Bijdragen aan de toekomst van het onderwijs! Ben jij op zoek naar een dynamische omgeving waar vol enthousiasme wordt gewerkt aan software voor interactieve dashboard- en analysetoepassingen ter verbetering van het onderwijs? Dan zijn wij het bedrijf voor jou! TIG is een bedrijf met een informele en ondernemende werksfeer, waarbij goede ideeën snel leiden tot concrete acties. Wij zijn een software ontwikkelorganisatie en focussen ons op het ontwikkelen en implementeren van oplossingen voor het leveren van managementinformatie, datavisualisatie en analyses voor het onderwijs. Met onze dashboard- en analyseoplossingen zetten scholen gegevens om naar betekenisvolle informatie.

Bekijk vacature »

Lead developer (PHP, Symfony, DDD)

Functie Als Lead developer zorg je ervoor dat het team (bestaande uit zowel junior als ervaren developers) in staat is om de kwaliteit van de software (en code) verder te verhogen. In samenwerking met het team, de product owner en de andere lead developers zet je technische lijnen uit en bepaal je de prioriteiten per sprint. Lijkt het jou interessant om complexe problemen op te lossen en bijvoorbeeld een nieuwe applicatiestructuur in Symfony op te zetten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en

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 »

.NET Developer

Functie De perfecte combinatie tussen techniek en vastgoed. Werk samen met de senior software developer om allerlei software van fluX te verbeteren. Gelukkig voel jij je helemaal thuis in de codewereld van .NET. Dus of je nu bezig bent met het verhogen van de conformiteitscore of het automatiseren van allerlei taxatiemodellen, jij weet precies hoe je de doelstellingen realiseert. En dat terwijl je ook samenwerkt met een extern ontwikkelteam. Waar dit team bepaalde softwaresystemen ontwikkelen, richt jij je vooral op onze Nederlands georiënteerde producten en alle wetgeving die daarbij komt kijken. Voor minimaal 32 uur per week verrijk jij onze

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale oplossingen van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen. Op dat moment komt je wil om te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas! Ook Junior Front-End Developer worden bij Coolblue?

Bekijk vacature »

Front End Ontwikkelaar (React)

In het kort Als front end developer ga je aan de slag met maatwerkprojecten voor onze klanten. Denk bijvoorbeeld aan het toevoegen van een machine aan een database of het corrigeren van formulieren voor ingestuurde orders. Voorbeeld van zo’n project is Smart Link. De projecten waar je op ingezet kunt worden liggen binnen het technische domein waar jij als front end developer een grote rol speelt om samen met je back end collega’s de juiste oplossingen te leveren. please note that this particular role requires fluent Dutch language skills. Dit vind je leuk om te doen Het omzetten van designs

Bekijk vacature »

Full Stack .NET Developer C# ASP.NET

Samengevat: Deze werkgever is gespecialiseerd in het op afstand bewaken en besturen van machines en processen. Ben jij een ervaren Full Stack .NET Developer? Heb je ervaring met C# en ASP.NET? Vaste baan: .Net Developer C# ASP.NET HBO €3.300 - €4.500 Deze werkgever is een snel groeiende onderneming gespecialiseerd in het op afstand bewaken en besturen van machines en processen, IoT (Internet of Things). Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Wil jij bij de top specialisten horen? Ben jij op zoek naar een

Bekijk vacature »

Network Engineer (f/m/d) in Heidelberg

Network Engineer (f/m/d) The IT Services team operates and supports the IT infrastructure and services at EMBL headquarters in Heidelberg and at the laboratory’s sites in Barcelona and Rome. As part of IT Services, the Network team is responsible for managing and developing the network infrastructure in our data centres, on campus, and to our external network providers. As a leading scientific institution with highly data-intensive research, extensive data flows at and between the laboratory’s six sites and to the Internet, EMBL is connected to national and international scientific networks using state-of-the-art technologies from vendors including Cisco, Extreme Networks and

Bekijk vacature »

Cobol Developer

Dit ga je doen Als Cobol Ontwikkelaar zal je gaan meebouwen aan een onderdeel van het backend systeem waarbij je het functionele ontwerp vertaald naar een technische oplossing die geïntegreerd kan worden in de huidige omgeving. Je zorgt ervoor dat de bedrijfsprocessen op een efficiënte manier worden uitgevoerd en werkt proactief aan het verbeteren hiervan. Samen met jouw collega’s reviewen jullie elkaars code en test je je eigen code. Je werkt nauw samen met andere ontwikkelaars, testers en functioneel ontwerpers. Taken pakket: Beheren en doorontwikkelen van de bestaande omgeving; Vertalen van een functionele vragen naar een technische oplossing; Doorvoeren van

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »
Jan R

Jan R

17/06/2023 10:02:01
Quote Anchor link
Hi

Ik wil een "read-only" veld toevoegen op bepaalde tabellen.
Wat zou nu het beste zijn?
Een extra tabel die vermeld wat de status is en bij ontbreken een standaard gebruiken of
gewoon toevoegen als veld waarbij er altijd een status is; veldwaarde.

In andere gevallen zou ik dit niet vragen maar het gaat hier maar over 1 bool waarde per record. De tabel toevoegen gebruikt ook ruimte :)

Jan
Gewijzigd op 17/06/2023 10:02:24 door Jan R
 
PHP hulp

PHP hulp

19/05/2024 09:07:33
 
Rob Doemaarwat

Rob Doemaarwat

17/06/2023 11:02:22
Quote Anchor link
Je bedoelt een veld dat aangeeft dat het betreffende record "read-only" is? Of een enkel veld (in een record) dat "read-only" is (maar hoe wordt het dan bepaald, of in eerste instantie gevuld)?

En wat houdt "read-only" in: nooit meer aanpassen (tenzij "read only" weer wordt opgeheven), of alleen niet door bepaalde gebruikers. Op record niveau lijkt het me dan dat je het eerder over een soort status hebt (waarbij "read only" het "gevolg" is van deze status).
 
Jan R

Jan R

17/06/2023 11:54:14
Quote Anchor link
Rob Doemaarwat op 17/06/2023 11:02:22:
Je bedoelt een veld dat aangeeft dat het betreffende record "read-only" is? Of een enkel veld (in een record) dat "read-only" is (maar hoe wordt het dan bepaald, of in eerste instantie gevuld)?

En wat houdt "read-only" in: nooit meer aanpassen (tenzij "read only" weer wordt opgeheven), of alleen niet door bepaalde gebruikers. Op record niveau lijkt het me dan dat je het eerder over een soort status hebt (waarbij "read only" het "gevolg" is van deze status).


Record is ro nu standaard in dezelfde tabel met standaard false
ro-record kan niet aangepast door geen enkele gebruiker tenzij opgegeven door hoger gebruiksniveau via een formulier.

via query iets zoals update veld="123" where id="852" and readonly=false zelfde principe voor delete.

Jan
 
Ward van der Put
Moderator

Ward van der Put

17/06/2023 14:38:55
Quote Anchor link
In MySQL zijn BOOL en BOOLEAN synoniemen van TINYINT(1), waarbij (int) 1 gelijk is aan TRUE en (int) 0 gelijk is aan FALSE. Zie:

https://dev.mysql.com/doc/refman/8.0/en/numeric-type-syntax.html

https://dev.mysql.com/doc/refman/8.0/en/boolean-literals.html
 
Ad Fundum

Ad Fundum

17/06/2023 15:48:52
Quote Anchor link
Autorisatie op kolommen regelt de database voor je. Je kunt het bedienen met het GRANT statement en het REVOKE statement.
Je kunt daarmee aangeven wat de CRUD-rechten zijn van elke database entiteit.

Als het goed is kan dit sinds een paar jaar ook met MariaDB (in ieder geval voor kolommen)
Mocht je een gecastreerde database moeten gebruiken dan zijn VIEWs met aparte leestoegang een alternatief.
Ik zie geen reden waarom je dit zelf opnieuw zou willen maken, anders dan om te leren.

Voor het geval ik de vraag niet helemaal heb begrepen; databases zijn ook in staat om per rij autorisatie te regelen, via RLS of Row Level Security. Voorwaarde is dat je het eerst per tabel aanzet met ALTER TABLE ... ENABLE ROW LEVEL SECURITY; Daarna kan je policies aanmaken om te bepalen in welke situatie welke rechten van toepassing zijn voor welke rol(len).
Gewijzigd op 17/06/2023 15:56:30 door Ad Fundum
 
Rob Doemaarwat

Rob Doemaarwat

17/06/2023 16:06:39
Quote Anchor link
Nou ... ik heb er niet voor (door)geleerd, maar ik zou 'm gewoon lekker in dezelfde tabel laten staan. Ik heb wel voor minder een veld toegevoegd dat maar sporadisch wordt gevuld. Als je elk afzonderlijk veld "dat wel eens null kan zijn" af gaat splitsen naar een aparte tabel raak je het overzicht ook kwijt.

Tenzij het over een paar miljoen records gaat, waarvan er maar 1 of 2 "read-only" zijn.

En zoals gezegd zou ik er een "status" veld van maken (tinyint enum). Dan kun je er in de toekomst misschien nog wat extra functionaliteit aan hangen.
 
Ozzie PHP

Ozzie PHP

17/06/2023 17:36:50
Quote Anchor link
Je kunt in MySQL ook Bit als datatype gebruiken om een boolean op te slaan.
 
Ad Fundum

Ad Fundum

18/06/2023 08:40:52
Quote Anchor link
Rob Doemaarwat op 17/06/2023 16:06:39:
Nou ... ik heb er niet voor (door)geleerd, maar ...

Ervaring telt ook!

Als het puur om rechten tot gegevens gaat, is niets makkelijker dan te typen GRANT <SELECT, INSERT, UPDATE..> ON tabel (kolom1, kolom2) TO <rol of user>;
Kom je er niet meteen uit dan kan je de linkjes gebruiken in mijn vorige post.

Bij normalisatie wil je elk begrip of ding of een eigen tabel geven. Dat is alles wat je kunt zien als een zelfstandig naamwoord. In de tabellen sla je een of meerdere dingen op die je kunt benoemen met het zelfstandig naamwoord. Bijvoorbeeld in de tabel 'stoel' sla je elke stoel op van de achtbaantrein.

In de meeste gevallen geef je elke rij in de tabel een eigen ID als sleutel, zodat je de relaties kunt vastleggen tussen de verschillende dingen (zelfstandig naamwoorden). In beschrijvende ERD-schema's zie je vaak op de lijntjes van de relaties een verklaring als 'W maakt een X', of 'Y bestaat uit meerdere Z'.

Eigenschappen van begrippen of dingen leg je vast in kolommen van de tabel. Ofwel je legt bijvoeglijke naamwoorden vast. De stoel kan misschien rood zijn, of blauw. Voordat je kolommen aanmaakt, onderga je de lastigste stap van normaliseren. Maak je twee kolommen die je 'rood' of 'blauw' noemt, of moet je eerst de bijvoeglijke naamwoorden categoriseren? Rood en blauw zijn kleuren, dus misschien is een kolom 'kleur' toepasselijker. Dat hangt af van waarvoor je het vastlegt. Wil je van beide kleuren weten of ze voorkomen? Dan is een kolom 'kleur' handiger. Zijn er veel kleuren mogelijk, zijn er andere objecten die een kleur kunnen hebben (bijvoorbeeld de achtbaantrein), of wil je meer dingen vastleggen over de kleur? Dan moet je kleur een eigen tabel geven.

De vuistregel is: zelfstandig naamwoorden een eigen tabel, bijvoeglijk naamwoorden in een kolom. Maar zoals je hierboven al kunt lezen is elke situatie uniek, en ook het categoriseren is meestal niet zo eenvoudig. Tijdens het bedenken van een schema kun je met een veelheid van bijvoeglijk naamwoorden te maken hebben wat het meteen al lastig maakt om te verzinnen wat bij wat hoort.

Vergeet niet het doel van normalisatie. Dat is om niets dubbel op te slaan. Er is op Wikipedia een heel artikel aan gewijd, met onderaan een artikel naar het tegenovergesteld denormalisatie.

Denormalisatie doe je wanneer het de database relatief veel moeite scheelt om gegevens op te vragen. Bijvoorbeeld als het combineren van tabellen lang gaat duren, of als je ingewikkelde queries moet gebruikt om gegevens af te leiden (al kun je daarvoor ook een MATERIALIZED VIEW voor gebruiken).

Ga lekker aan de slag en ontdek wat goed werkt voor jouw situatie. Kom je er niet uit dan helpt het ons om te weten wat je precies waarom wilt vastleggen, en hoe het schema er uitziet. Dan kan je heel gericht commentaar krijgen.
 
Jan R

Jan R

18/06/2023 10:49:32
Quote Anchor link
Ad Fundum op 18/06/2023 08:40:52:
Als het puur om rechten tot gegevens gaat, is niets makkelijker dan te typen GRANT <SELECT, INSERT, UPDATE..> ON tabel (kolom1, kolom2) TO <rol of user>;
Kom je er niet meteen uit dan kan je de linkjes gebruiken in mijn vorige post.


Spijtig genoeg werkt een website altijd met dezelfde gebruiker.
Ozzie PHP op 17/06/2023 17:36:50:
Je kunt in MySQL ook Bit als datatype gebruiken om een boolean op te slaan.

Ward van der Put op 17/06/2023 14:38:55:
In MySQL zijn BOOL en BOOLEAN synoniemen van TINYINT(1), waarbij (int) 1 gelijk is aan TRUE en (int) 0 gelijk is aan FALSE.

ja/nee, waar/onwaar, 0/1 komt allemaal op hetzelfde neer hé :) sommigen gebruiken zelfs tekst. Dat is niet bepaald mijn favoriet.


Rob Doemaarwat op 17/06/2023 16:06:39:
Ik heb wel voor minder een veld toegevoegd dat maar sporadisch wordt gevuld. Als je elk afzonderlijk veld "dat wel eens null kan zijn" af gaat splitsen naar een aparte tabel raak je het overzicht ook kwijt.

Tenzij het over een paar miljoen records gaat, waarvan er maar 1 of 2 "read-only" zijn.

Om het overzicht niet kwijt te raken wou ik het ook in de tabel houden maar ik wou het toch een vragen.
Het gaat momenteel over 2 tabellen waarbij de grootste nu op 4400 records bevat met een stijging van ±350 per jaar. Ik zal het einde van 1 000 000 niet halen denk ik. 2 800 jaar er nog bij.


Allen bedankt om mee te denken en ideeën door te geven.
Jan
 
Ad Fundum

Ad Fundum

19/06/2023 06:31:25
Quote Anchor link
Jan R op 18/06/2023 10:49:32:
Spijtig genoeg werkt een website altijd met dezelfde gebruiker.

Je kunt de gebruiker tijdens een sessie eenvoudig veranderen met SET SESSION AUTHORIZATION, bijvoorbeeld aan het einde van de authenticatieprocedure. Zelfs MySQL heeft iets vergelijkbaars in PHP met mysqli::change_user().

In plaats van bovenstaande kan je een tweede keer een databaseverbinding aanmaken met de andere gebruiker.
Je hebt in ieder geval keuze.
Gewijzigd op 19/06/2023 06:39:25 door Ad Fundum
 
Jan R

Jan R

19/06/2023 07:02:14
Quote Anchor link
Theoretisch heb je gelijk. Praktisch niet. Bepaalde providers kennen je maar 1 gebruiker toe.
Op mijn nas zou ik er een paar honderd kunnen maken. Op mijn one.com website echter geen BIJmaken.
 
Ad Fundum

Ad Fundum

19/06/2023 07:25:43
Quote Anchor link
En wie bepaalt er welke provider jij hebt?
Gewijzigd op 19/06/2023 07:27:47 door Ad Fundum
 



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.