Datamodel
http://www.phphulp.nl/forum/showtopic.php?id=42900&cat=1 vertelde je mij dat mijn datamodel niet klopte.
Ik heb 1 tabel aangemaakt met de naam afbeelding deze bevatten:
idnummer
categorie
omschrijving
trefwoord
afbeelding
thumbnail
Je vertelde mij: de categorieen zet je in een aparte tabel en die koppel je aan de tabel 'afbeelding'. Dit scheelt weer een berg ellende. Ik vroeg mij af hoe je nou weet WANNEER je iets in een appart tabel zet of niet. Moet ik dan ook aparte aanmaken voor omschrijving en trefwoord? Overigens koppel je de twee tabellen door gewoonweg opnieuw idnummer te gebruiken?
Alvast bedankt
pgFrank in mijn vorige post Ik heb 1 tabel aangemaakt met de naam afbeelding deze bevatten:
idnummer
categorie
omschrijving
trefwoord
afbeelding
thumbnail
Je vertelde mij: de categorieen zet je in een aparte tabel en die koppel je aan de tabel 'afbeelding'. Dit scheelt weer een berg ellende. Ik vroeg mij af hoe je nou weet WANNEER je iets in een appart tabel zet of niet. Moet ik dan ook aparte aanmaken voor omschrijving en trefwoord? Overigens koppel je de twee tabellen door gewoonweg opnieuw idnummer te gebruiken?
Alvast bedankt
http://www.phphulp.nl/php/tutorials/3/150/259/
Kan je wel helpen denk ik. Normaliseren doe je vooral om geen dubbele data in je database te krijgen. Dubbele data is ten eerste zonde van de ruimte (alhoewel bijna verwaarloosbaar) maar je data wordt daardoor corrupt. Wanneer je twee resultaten krijgt, hoe weet je database welke weer te geven?
Een omschrijving kan je bijvoorbeeld wel bij je afbeelding opslaan, maar een terfwoord, of tag niet. Ik zou deze in een aparte tabel opslaan. Nette koppeltabel tussen je tags en afbeeldingen en je hebt een lijst met unieke tags...
hopelijk wordt het zo een beetje duidelijk voor je!
Kan je wel helpen denk ik. Normaliseren doe je vooral om geen dubbele data in je database te krijgen. Dubbele data is ten eerste zonde van de ruimte (alhoewel bijna verwaarloosbaar) maar je data wordt daardoor corrupt. Wanneer je twee resultaten krijgt, hoe weet je database welke weer te geven?
Een omschrijving kan je bijvoorbeeld wel bij je afbeelding opslaan, maar een terfwoord, of tag niet. Ik zou deze in een aparte tabel opslaan. Nette koppeltabel tussen je tags en afbeeldingen en je hebt een lijst met unieke tags...
hopelijk wordt het zo een beetje duidelijk voor je!
vb.
Hier zie je dat bij de categorieën je meerdere dezelfde namen zal hebben, dus neem je best een aparte tabel categorie:
Gewijzigd op 01/01/1970 01:00:00 door Hipska BE
Gewijzigd op 01/01/1970 01:00:00 door Carel
ja, daar heb je opzich wel gelijk in... alleen dan mijn vraag: wat komt er precies bij je omschrijving te staan. Vaak zijn die wel erg verschillend hoor!
Maar het is dus raadzaam om omschrijving ook appart te doen. Bij afbeelding en thumbnail kun je idd geen dubbele gegevens krijgen. Elke foto dat upgeload wordt krijgt enieke naam toegewezen incl de naam die de gebruiker aan het bestand al had gegeven bij thumbnail wordt alleen ook nog tn_ toegevoegd.
Het is dus bij mij raadzaaom om dit te doen
id (pk)
afbeelding
thumbnail
id (pk)
categorieid (?)
id (pk)
omschrijvingsid (?)
omschrijving
id (pk)
trefwoordid (?)
trefwoord
Is die ? ook PK of Unique of eigenlijk geen van beide. Denk geen van beide en dat ik deze bij het invoeren automatisch gevuld moet worden. En moet die bijv trefwoordid ook auto_increment zijn...
Gewijzigd op 01/01/1970 01:00:00 door Carel
Waarom heb je eigenlijk de afbeelding en thumbnail los van elkaar? Een thumbnail verschilt eigenlijk alleen in een voorvoegsel (thumb_afbeeldingsnaam.ext) of locatie (thumbs/afbeeldingsnaam.ext) van het origineel. Dus feitelijk sla je normaal gesproken alleen de naam van de afbeelding op.
Maaruhhh kan iemand antwoord geven op mijn vorige vraag?
ja, trefwoord moet ook autoincrement zijn. Je moet immers weten waarnaar je de boel door moet koppelen.
CREATE TABLE `afblocatie` (
`id` int(15) NOT NULL auto_increment,
`afbeelding` varchar(255) collate utf8_bin NOT NULL default '',
`thumbnail` varchar(255) collate utf8_bin NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
CREATE TABLE `afbcategorie` (
`id` INT( 15 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`categorieid` INT( 15 ) NOT NULL ,
`categorie` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_bin COMMENT = 'categorie voor afbeelding die upgeload worden';
CREATE TABLE `afbomschrijving` (
`id` INT( 15 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`omschrijvingsid` INT( 15 ) NOT NULL ,
`omschrijving` TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_bin COMMENT = 'omschrijving van de afbeelding dat upgeload is';
CREATE TABLE `afbtrefwoord` (
`id` INT( 15 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`trefwoordid` INT( 15 ) NOT NULL ,
`trefwoord` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_bin COMMENT = 'Trefwoord voor upgeloade afbeeldingen';
Gewijzigd op 01/01/1970 01:00:00 door Carel