Autor | Zpráva | ||
---|---|---|---|
johny d. Profil * |
#1 · Zasláno: 22. 8. 2014, 17:48:23
Ahoj, rád bych se zeptal na jednu pro mě celkem důležitou věc, kterou zrovna řeším. Dělám na aplikaci, která je rozdělena do více podobně strukturováných částí (modulů). Každý z těchto modulů obsahuje podobné věci, ale každý obstarává jednu oblast aplikace, Je zde např. modul pro články, stránky, produkty atd. Jedná se o to, že každý z těchto modulů do databáze ukládá název, datum vytvoření, zda je aktivní či ne atd. Další data už pak nejsou společná, např. odkaz, který je jenom u některých modulů. Nyní to řeším tak, že pro každý modul existuje jedna samostatná tabulka. Do každé se tedy ukládá např. ten název. Napadlo mě, že lepší by bylo mít jen 2 tabulky a to tabulku abject a objectmeta (moglo by se jmenovat i jinak). Do tabulky object by se ukládala data, která obsahuje každý modul, tedy ten název, aktivita, datum vytvoření a další. Ostatní data by byla uložena v tabulce objectmeta, jako páry klíč / hodnota. Struktura by mohla být takováto.
object: id int, name varchar, active tinyint(1), created date; objectmeta: object_id int, type varchar, (možná spíše enum - jako typ objektu/modulu, tedy article, page atd.), key varchar, value varchar; V objectmeta by sloupečky key a value byly právě pro ukládání dodatečných hodnot. Např. pro článek by se název článku uložil do tabulky object, ale obrázek by se uložil do object meta, jako object_id např. 1, type => article, key => image a value => image_name.jpg. Bojím se ale, že tyto tabulky a hlavně objectmeta by neúnostně boptnala. Jaký je váš názor na takový návrh? Bylo by to dobré? A co z hlediska velikých objemů, kdy by např existovalo 1000 článků, 100 stránek a hromada dalších dat a všechny by byly uloženy pouze v těchto dvou tabulkách? |
||
Časová prodleva: 3 dny
|
|||
Kajman Profil |
#2 · Zasláno: 25. 8. 2014, 13:22:08
johny d.:
Sloupec type by měl být v tabulce object. Někdy se dává do objectmeta více sloupců, pokud je třeba mít více typů hodnot (čísla uložená jako čísla, datumy uložené jako datumy, atp.). Pokud si vystačíte s varcharem, tak to tak můžete udělat. „A co z hlediska velikých objemů, kdy by např existovalo 1000 článků, 100 stránek a hromada dalších dat a všechny by byly uloženy pouze v těchto dvou tabulkách?“ Pokud budou vhodně indexy, tak bude výkon dobrý - databáze jsou stavěné na mnohem větší objemy. |
||
Časová prodleva: 10 let
|
0