Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[PHP, MSQL] normaliseren database

Pagina: 1
Acties:
  • 482 views

Verwijderd

Topicstarter
Hallo allemaal,

Momenteel ben ik bezig aan een site waar tips kunt bekijken. Nu vraag ik mij af hoe ik mijn database best indeel om alles zo overzichtelijk en update baar mogelijk te houden.

Hier even klein voorbeeld op de pagina tips zie je
-Windows
-Internet
-Office
-Hardware

wanneer je nu op Internet klikt zie je nu de volgende onderverdelingen

-FireFox
-MSN
-Google
-IE7

wanneer je nu op firefox klikt krijg je alle titels van de tips in firefox te zien

-Schakel GIF animaties uit
-Sneller surfen met Labels
-Add-on: Flashblock
-Snel zoeken tijdens typen

wanneer je nu op een titel klikt krijg je de tip te zien.




Nu heb ik ergens gelezen dat ik het best zo oplos (Alleen was deze tutorial in het engels en begrijp ik het niet al te best.)

dus:
HoofdgroepTabel:
id--naam

SubgroepTabel:
id--hoofdgroepTabelId--naam

infoTabel:
id--subgroepTabelId--naam--date--tip

En iets van de verschillende tabel joinen, bedoelen ze daarmee dat ik de rij "hoofdgroepTabelId" niet in de tabel "SubgroepTabel:" moet aanmaken in de database maar joinen als ik de data aanroep ?

En hoe haal ik er dan bijvoorbeeld firefox uit nadat ik op internet geklikt heb?

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Zorg dat je eerst de DB basics mbt joins begrijpt. Dus wat relaties tussen je entiteiten zijn en wat de mysq syntax daarvoor is.

{signature}


Verwijderd

Topicstarter
Met joinen kun je 2 tabelen samenvoegen waar bepaalde id's aan elkaar gelijk zijn


heb dit geprobeert maar het lukt niet.

SELECT sub.id, hoofd.naam FROM subgroepTabel sub INNER JOIN hoofdgroepTabel hoofd on sub.hoofdgroepTabelId = hoofd.id WHERE sub.id = '1'

[ Voor 53% gewijzigd door Verwijderd op 22-08-2008 17:22 ]


  • Noork
  • Registratie: Juni 2001
  • Niet online
Voutloos schreef op vrijdag 22 augustus 2008 @ 17:15:
Zorg dat je eerst de DB basics mbt joins begrijpt. Dus wat relaties tussen je entiteiten zijn en wat de mysq syntax daarvoor is.
Idd lijkt me ook een vereiste voor de TS. Anders moeten we hier weer sql gaan voorkauwen.

Zie b.v.
https://www.cs.auckland.ac.nz/references/sql/sqlTutorial.pdf
http://dev.mysql.com/doc/refman/5.0/en/join.html

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:38

Johnny

ondergewaardeerde internetguru

Als je subonderwerpen altijd maar onderdeel zijn van één hoofdonderwerp kun je beter één tabel gebruiken met een extra kolom "parent_id" die naar het het hoofdonderwerp verwijst. Op die manier kan je ook makkelijk oneindige subgroepen van subgroepen maken zonder dat je extra tabellen nodig hebt.

Verder is het niet nodig om je tabelnamen allemaal "Tabel" te noemen.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • remco_k
  • Registratie: April 2002
  • Laatst online: 16-11 12:27

remco_k

een cassettebandje was genoeg

Verwijderd schreef op vrijdag 22 augustus 2008 @ 17:14:
HoofdgroepTabel:
id--naam

SubgroepTabel:
id--hoofdgroepTabelId--naam

infoTabel:
id--subgroepTabelId--naam--date--tip
Los van het reeds genoemde hierboven, leverd deze structuur je al snel een bepaald probleem op.
Je kan maar 1 nivo diep gaan, zoals dit:
HoofdGroep->Subgroep->Tip
Windows->Firefox->Tip

Ik kan je op een presenteerblaadje geven dat je van deze beperking vroeg of laat last gaat krijgen omdat je meer nivo's nodig hebt.
HoofdGroep->SubGroep->Subgroep->......->Tip
Windows->Firefox->Firefox 3->Tweaks->Tip

Dit laatste is in je opgenoemde database model niet mogelijk en ik zou daar als ik jouw was een andere constructie voor bedenken.

Edit:
En toen was Johnny me net even voor. Ik moet toch eens sneller tiepen. :+

[ Voor 5% gewijzigd door remco_k op 22-08-2008 17:28 ]

Alles kan stuk.


Verwijderd

Topicstarter
Johnny schreef op vrijdag 22 augustus 2008 @ 17:23:
Als je subonderwerpen altijd maar onderdeel zijn van één hoofdonderwerp kun je beter één tabel gebruiken met een extra kolom "parent_id" die naar het het hoofdonderwerp verwijst. Op die manier kan je ook makkelijk oneindige subgroepen van subgroepen maken zonder dat je extra tabellen nodig hebt.

Verder is het niet nodig om je tabelnamen allemaal "Tabel" te noemen.
Bedoel je dan zoiets als dit ? http://dev.mysql.com/tech...es/hierarchical-data.html

Verwijderd

Topicstarter
Al deze tutorials zijn in het engels en dat is ook het moelijke eraan, weet er niemand Nederlandstalige zijn ?

  • Noork
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op vrijdag 22 augustus 2008 @ 17:29:
Al deze tutorials zijn in het engels en dat is ook het moelijke eraan, weet er niemand Nederlandstalige zijn ?
Google.NL is je vriend. En er zijn ook Nederlandstalige boeken in omloop. Ik heb hier een klein boekje "Databases en SQL" van Ton de Rooij waarin het perfect wordt uitgelegd.

[ Voor 10% gewijzigd door Noork op 22-08-2008 17:35 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 16-11 14:26

Creepy

Tactical Espionage Splatterer

En anders zou je Programming FAQ - SQL eens kunnen lezen. Die topics die hier bovenaan PRG staan zijn af en toe best wel eens handig ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Johnny schreef op vrijdag 22 augustus 2008 @ 17:23:
Als je subonderwerpen altijd maar onderdeel zijn van één hoofdonderwerp kun je beter één tabel gebruiken met een extra kolom "parent_id" die naar het het hoofdonderwerp verwijst. Op die manier kan je ook makkelijk oneindige subgroepen van subgroepen maken zonder dat je extra tabellen nodig hebt.

Verder is het niet nodig om je tabelnamen allemaal "Tabel" te noemen.
Waar kan ik zo een tutorial vinden ?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op zaterdag 23 augustus 2008 @ 18:41:
[...]


Waar kan ik zo een tutorial vinden ?
Hier en zoals Creepy al aangaf (o.a.) hier.

Zoals je in onze FAQ kunt lezen verwachten we toch echt heel wat meer inzet van jezelf. Je hebt de juiste keywords inmiddels, nu is het een kwestie van (goed) zoeken; het is écht niet moeilijk om iets te vinden over dit (toch wel basic) onderwerp.

Overigens, als je engels niet (goed) machtig bent is dat zeker een aanrader om ook onder de knie te krijgen wil je serieus aan het programmeren gaan. 90% van alle goede/recente documentatie is in het engels geschreven en het programmeren zelf (in IMHO het commentariseren van code) gebeurt ook allemaal in het engels. Het is geen must, maar ik denk wel een behoorlijke handicap als je niet met engels overweg kunt.

[ Voor 81% gewijzigd door RobIII op 23-08-2008 19:47 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.