Mijn data model.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Hipska BE

Hipska BE

02/06/2009 10:30:00
Quote Anchor link
Ik heb hier even de veranderingen van je DB model opgevolgd, en ik zie dat je heel erg goed hem hebt aangepast, enkel heb ik bij sommige dingen nog vragen.

1) Het veldje admin in de tabel user zal volgens mij enkel maar een 0 of een 1 bevatten, en jij voorziet daar een veld dat de waarde's -2147483648 tot en met 2147483647 kan bevatten. Lijkt mij nutteloze ruimteverspilling. Hier kan je beter het type BIT(1) nemen. (versie 5.0.5 om dit toe te passen in InnoDB)

2) Bij de tabel category heb je een veldje created_on. Dit lijkt in mijn ogen niet erg nuttig om bij te houden. Tenzij je ergens categoriën wil sorteren op aanmaakdatum of de recentste categoriën tonen. Indien niet, zou ik het weglaten.

3) Ik zie in verschillende tabellen het veld 'position' van het type INT. Ook hier denk ik dat je niet posities zult verplaatsen tot aan nummer 2147483647. Ik stel voor dat je even kijkt naar het lijstje met mogelijke types en voor jezelf de goede beslissing neemt. (Ik zou gaan voor unsigned, omdat een positie niet in het negatieve zal liggen neem ik aan.)

Voor de rest een prima DB opmaak! Doe zo voort!
 
PHP hulp

PHP hulp

22/12/2024 02:51:01
 
Joey Drieling

Joey Drieling

02/06/2009 12:10:00
Quote Anchor link
@hipaka,

Bedankt voor je sugesties zal als ik thuis ben veder naar kijken.
Zit nu op phphulp met mijn G1 ;)
 
Joey Drieling

Joey Drieling

02/06/2009 21:04:00
Quote Anchor link
Foutje was verkeerd gepost ;)
Gewijzigd op 01/01/1970 01:00:00 door Joey Drieling
 
Joey Drieling

Joey Drieling

14/06/2009 19:17:00
Quote Anchor link
Heb nog wat toegevoegd en aan gepast denk dat het zo wel goed is.

SQL File:
http://h1.ripway.com/rakoda/create3.sql

Plaatje:
http://h1.ripway.com/rakoda/datemodel6.png
 
Citroen Anoniem Graag

Citroen Anoniem Graag

14/06/2009 20:26:00
Quote Anchor link
joey schreef op 02.06.2009 10:19:
Ja ik weet achter de foreign key hort nog on delete cascade en on update cascade maar bedankt dat jet jou ook opviel.


met on delete cascade moet je oppassen! Je kan op die manier in 1x veel meer data kwijt zijn dan je eigenlijk van plan was. Vaak is het beter om on delete restrict te doen. Op die manier dwing je jezelf om eerst alle data weg te gooien die in relatie staat met de andere data. Dan heb je veel beter in de gaten wat er gebeurt, dan als alles vanzelf gaat.

On update cascade is overigens prima.
 
Joey Drieling

Joey Drieling

14/06/2009 21:46:00
Quote Anchor link
ik wilde in plaats van cascade set dafult gebruiken om dat dafult 0 is
want ik wil het gelinkte gagevens niet gelijk kwijt zijn en aan de warde 0 kan ik dan zien dat die rij niet meer bestaat en geef ik een melding dat de betrevende niet meer bestaat en dat ze een ander moeten kiezen
 
Mark PHP

Mark PHP

14/06/2009 21:57:00
Quote Anchor link
Citroen schreef op 14.06.2009 20:26:
Op die manier dwing je jezelf om eerst alle data weg te gooien die in relatie staat met de andere data.
Daarmee verlies je dus een groot deel van de kracht van foreign keys.

M.i. moet je van tevoren goed over je datamodel nadenken. Als je dat doet, kan je je best het gebruik van cascade veroorloven. In sommige gevallen is doet dit namelijk precies wat je wilt.

Restrict gebruik ik alleen voor kritieke zaken, zoals het verwijderen van een taal uit het systeem terwijl er veel berichten in die taal staan.

Voor de rest: SET NULL en SET DEFAULT!
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
 
Joey Drieling

Joey Drieling

14/06/2009 22:18:00
Quote Anchor link
dus als ik goed begrijp werwijdert cascade alles zo

bijvoorbeld heb deze rij gebruiker[id 33, naam 41]
en deze rij naam[id 41, naam piet]

en ik verwijder (gebruiker id 33) dan verwijdert hij ook (naam id 41)
Gewijzigd op 01/01/1970 01:00:00 door Joey Drieling
 

Pagina: « vorige 1 2



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.