Autor Zpráva
Ecrazit
Profil *
Zdravím, řeším teď následující problém. Mám systém s vkládáním článků, kde u každého článku se může vložit jedna fotka a libovolně u ní může být popiska. Řeším to tak, že obrázek dostane jméno podle nadpisu, osekané o znaky co tam nemají co dělat. Pak se tento název obrázku uloží do db a z něho pak obrázek načítám. Popiska se ukládá do dalšího sloupce.

Teď to ale potřebuji upravit tak, aby šlo vkládat 1 - 8 obrázků a u každého z nich může i nemusí být popiska a vůbec nevím, jak pro to upravit tabulku v databázi. Napadlo mě akorát, že by pro všechny obrázky byl název stejný, uložený v jednom sloupci. V dalším sloupci by byl jejich počet a v php by se potom načítali řekněme jako obrazek_1, obrazek_2. Ale zase netuším, jak by se v takovémhle případě ukládali ty popisky... Neměl by někdo nějaké řešení pro tuhle situaci?
Someone
Profil
V tomto případě bude lepší vytvořit novou tabulku, kde budou jen obrázky s popisky.
juriad
Profil
Pokud si navrhneš správně databázi, nepotřebuješ řešit počty obrázků, prostě budeš mít další tabulku, ve které budou všechny obrázky a bude u nich informace, ke kterému článku patří.

clanky (clanek_id, ...)
obrazky (clanek_id, file_name, name, title?)

Dotaz na obrázky pak bude vypadat následovně:

SELECT name, file_name, title FROM clanky WHERE clanek_id = ?idecko
Ecrazit
Profil *
jo tak takhle se mi to líbí :) udělám to tak, díky. A ještě jeden dotaz k tomu. Je tam samozřejmě i editace a možnost články mazat. Řekněme, že budu mít článek a u něj 8 obrázků. Rozhodnu se ho smazat... nebo upravit tak, že u něj nechám jen 4 obrázky... co potom udělat s těmi obrázky v DB, co už jsou k ničemu? Když záznamy smažu, rozhodí mi to sloupec s ID. Je dobré mít tam třeba ještě sloupce deleted s hodnotami 0 nebo 1? Nebo se to dá řešit ještě nějak lépe?
Someone
Profil
To, že ti to rozhodí ID obrázků přeci nevadí?
Budeš mít tabulku Obrázky+Popisky

ID -> Běžný klíč
ID_clanku -> Které se může opakovat
Cesta ->
Popisek -> ...
Když smažeš článek a k němu příslušné obrázky, tak to nijak neovlivní sloupec ID_clanku
martin1312
Profil
ID ti to nijako nerozhodi, predsa ID mas auto_increment.
Mazanie mozes riesit bud tak, ze zaroven ako budes mazat clanok tak das my_sql dotaz aj na vymazanie obrazkov s prislusnym clanek_id, alebo ak si chces obrazky archivovat, mozes aj tak, ako si pisal, ze doplnis stlpec delete.

Someone: rychlejsi

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: