login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Normaliseren database

Offline Desinger - 12/08/2008 21:58 (laatste wijziging 12/08/2008 22:01)
Avatar van DesingerNieuw lid Hoi allen,
Ik ben php beginner en zou graag een soort van tips(.php) pagina op mijn site willen zetten dat ik zelf gemaakt heb. Nu weet ik niet goed hoe ik de informatie best opsla in de database (MySQL). Eerst kun je kiezen tussen 4 hoofdcategorieën (windows, office, internet, hardware) die dan nog eens onverdeeld zijn in (Windows: xp, vista, 98 ; 0ffice: word, exel, outlook... ; Internet: IE7 , Firefox 3, MSN, antivirusprogramma.... ; Hardware: moederbord, harde schijf, GPU, CPU.... ) waar je op terecht komt als je op een van de hoofdcategorieën geklikt hebt. Klik je bijvoorbeeld op Internet dan komt er een nieuwe pagina met IE7 , Firefox 3, MSN, antivirusprogramma. Klik je dan op Firefox wordt er een nieuwe pagina geladen met de titels van tips die handig zijn in firefox klik je dan op de titel krijg je de tip te zien. Heb verschillende tutorials uitgevoerd maar toch kom ik er niet uit... In mijn boek staat ook niets nuttig.

Ik heb maar 1 database op mijn host...

Zelf dacht ik aan 1 tabel per onderdeel zoals:

firefox

firefoxid
firefoxtitel
firefoxdate
firefoxtip


windows xp

xpid
xptitel
xpdate
xptip


word

wordid
wordtitel
worddate
wordtip

enzovoort... of is deze sructuur beter :

4 hoofdgroepen.
1 hoofdgroep -> subgroepen
subgroep -> info


dus:
HoofdgroepTabel:
id--naam

SubgroepTabel:
id--hoofdgroepTabelId--naam

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

Is dit surrieus fout en moet het anders dan hoor ik het graag !
Alvast bedankt !

3 antwoorden

Gesponsorde links
Offline Tuinstoel - 12/08/2008 23:07
Avatar van Tuinstoel PHP expert Het zou kunnen. Maar je kunt ook alles in 2 tabellen gooien. Dan moet je gewoon een tabel zoals dit maken:

  1. CREATE TABLE `groepen` (
  2. id smallint(4) auto_increment,
  3. naam varchar(255) default '',
  4. groep smallint(4) default '',
  5. PRIMARY KEY (id)
  6. );
  7.  
  8. CREATE TABLE `info` (
  9. id int(11) auto_increment,
  10. groep_id smallint(4) default 0,
  11. titel varchar(255) default '',
  12. info TEXT,
  13. PRIMARY KEY (id)
  14. );


Je hebt dan dus je 4 hoofdcategorieën. Die maak je aan, en zet je onder groep 0.

Stel dat Windows nu record #1 is. Dan maak je alle items onder Windows groep 1, dus kolom `groep` krijgt dan als waarde 1.

Als je bijv. in groep 1 zit te kijken, dan vraag je 2 dingen op:
Zijn er sub-groepen ja/nee
ja -> opvragen & laten zien
nee -> gegevens uit `content` opvragen...

Dit is vast een opzetje. Ik zelf zou het zo ongeveer aanpakken.
Offline Desinger - 13/08/2008 00:18
Avatar van Desinger Nieuw lid Zo dus:
"groepen"

id: 1 naam: office groep: 0
id: 2 naam: windows groep: 0
id: 3 naam: internet groep: 0
id: 4 naam: hardware groep: 0
id: 5 naam: word groep: 1
id: 6 naam: exel groep: 1
id: 7 naam: outlook groep: 1
id: 8 naam: xp groep: 2
id: 9 naam: vista groep: 2
id: 10 naam: 98 groep: 2
id: 11 naam: msn groep: 3
id: 12 naam: Firefox groep: 3
id: 13 naam: IE7 groep: 3
id: 14 naam: CPU groep: 4
id: 15 naam: moederbord groep: 4
id: 16 naam: GPU groep: 4
id: 17 naam: RAM groep: 4

enzoverder... ?

wat moet er juist in "groep_id" komen in tabel "info" ?

hoe controleer ik of er nog sub-groepen zijn ?

if " zijn er subgroepn " (weet niet wat de functie daarvoor is)
{ $sql = "SELECTsub-groepn "} (functie ?)
else { $sql = "SELECT titel "}



Offline marten - 13/08/2008 10:50
Avatar van marten Beheerder Wat ik zelf een zeer duidelijke uitleg vindt:

http://dev.mysq...-data.html

Hiermee kan je oneindig categorien maken en er staat precies aangegeven hoe het uitgelezen kan worden enzo.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.413s