[SQL] Database/normalisatie design check

Pagina: 1
Acties:

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 30-03 22:59
Ik ben bezig met een database voor op intranet, met vele gebruiken maar zal alleen basic vertellen omdat het gebruik verder niet echt relevant is... :D

ik heb een gebruiker, die kan meerdere kamers hebben, meerdere telefoonnummers en meerdere afdelingen....

nu heb ik een design gemaakt, maar tis zo lang geleden dat ik echt heb moeten designen met dit soort dingen (normaal is het een herhalende waarde? aparte tabel) dat ik twijfel of ik het wel goed heb gedaan.....

ik heb een design gemaakt met een tooltje dat ik toevallig tegen kwam: dezign 3.0

hier is een link naar een plaatje:
design

PK = Primairy key
FK = Foreign key
(hoewel dat wel duidelijk zou moeten zijn dacht ik ;))

als het plaatje niet genoeg info levert, dan lever ik die graag als dat gevraagt wordt :D


edit: nu ik ff kijk of de link wel werkt, kijk ik naar het design en lijkt er volgens mij aan de userkant geen hout van, maar dat is graag iets wat ik wil uitvinden

[ Voor 10% gewijzigd door WPN op 30-03-2005 13:26 ]

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-05 08:08

Janoz

Moderator Devschuur®

!litemod

Als ik naar je ontwerp kijk dan is alles gekoppeld. Een medewerker heeft een functie waneer hij in een bepaalde kamer zit en heeft daarbij dan dat telefoon nummer. Dat komt in principe niet overeen met wat jij boven beschreven hebt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 09-05 10:16

ripexx

bibs

Persoonlijk zou ik er van uit gaan dat een medewerker/persoon een of meerdere functies heeft binnen een organisatie. Een functie is dan weer gekoppeld aan een telefoonnummer, emailadres, kamer en afdeling. Let er op dat je beijvoorbeeld meerdere "gelijkende" functies kan hebben maar elke heeft een andere afdeling. Je hebt dan imho een veel praktischer model dat je op verschillende manieren kan benaderen.

buit is binnen sukkel


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 09-05 10:16

ripexx

bibs

Verder heeft het weinig met MySQL te maken maar meer met normaliseren en eventueel wat SQL ;)

offtopic:
Damm, quote ipv edit :(

[ Voor 18% gewijzigd door ripexx op 30-03-2005 13:46 ]

buit is binnen sukkel


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
Het is nu wel zo dat een dezelfde medewerker meerdere keren op dezelfde afdeling kan zitten. Weet niet of dat goed is. Misschien dat je in de tabel verzameling een gecombineerde primarykey kan maken met afdeling_id en medewerkernr.

stp - PSN ID: stp_4


  • 4VAlien
  • Registratie: November 2000
  • Laatst online: 08-04 20:02

4VAlien

Intarweb!

Dat je een nieuwe entiteit 'verzameling' introduceert bewijst dat het niet goed is, je moet alles vanaf de persoon kunnen herleiden toch?

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 30-03 22:59
ik ben ff bezig met een redesign

dat ik MYSQL in de titel heb staan komt omdat ik het design in een mysql database ga stoppen

nieuw plaatje edit ik er strax in, hier

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 30-03 22:59
Ik heb een nieuw design, wat beter is hoop ik

design 2


ps: bij de relatie van users naar functie staat een streep inplaats van een 0 zoals de rest (ligt niet aan mij, ligt aan het programma ;))

[ Voor 40% gewijzigd door WPN op 31-03-2005 10:12 ]

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 09-05 10:16

ripexx

bibs

Je zit nog steeds verkeerd met je entiteiten. De entiteit persoon heeft geen kamer of afdeling. De functie van de persoon heeft een locatie (kamer) en een afdeling. Verder is het maar de vraag of je telefoonnummers wil normaliseren. Voor een intranet zou het kunnen maar om dan ook mobiele nummers te normaliseren? Ik neem aan dat niet iedereen hetzelfde mobiele telefoonnummer heeft ;)

Verder zou ik wel eens je motivatie willen vernemen in plaats van zomaar een linkje naar een plaatje te dumpen. Immers maak je bepaalde keuzes, maar waarom maak je deze deze keuze? Wellicht dat dan sommige zaken voor ons ook wat duidelijker worden. :)

buit is binnen sukkel


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 09-05 18:34

Dido

heforshe

Ik denk dat je minimaal een paar relaties verkeerd om hebt staan.

Ik vermoed dat je een n-n relatie tussen bijvoorbeeld functies en user wilt maken, maar nu zegt je model dat een user 1 of meer functies heeft, war weer 1 of meer functies bijhoren :?

Wat betekent mijn avatar?


Verwijderd

Let er overigens wel op dat MySQL standaard geen support nog heeft voor FK's, als je die perse wil gebruiken dan zal je de InnoDB engine moeten gebruiken waar het wel bij kan.

Let dan wel op met bepaalde COUNT()'s enzo, daar zaten wat haken en ogen aan.
Pagina: 1