Autor | Zpráva | ||
---|---|---|---|
MaK Profil |
#1 · Zasláno: 25. 2. 2014, 15:36:52
Taková filozofická otázka. V aplikaci mohou uživatele komentovat buď psy nebo kočky. Psy a kočky jsou jen příklad, ale jedna se o objekty, která jsou v samostatných tabulkách (tabulka psy, tabulka kočky). Teď mám možnost:
1. vytvořit jednu tabulku komentare, která obsahuje: typ ENUM('pes',kocka'), id INTEGER, -- identifikator psa/kocky v zavislosti na sloupci typ nebo: 2. vytvořit dvě tabulky komentare_psy, komentare_kocky: id INTEGER, -- identifikator psa/kocky v zavislosti jmenu tabulky Možná jsou na komentáře psů kladeny trochu jiné požadavky (ale ne o moc). Nikdy nepřibude "další zvíře". Nikdy není třeba číst komentáře psů a zaroveń koček v jednom dotaze. Zakladní otázka. Snažit se dostat komentáře do jedné tabulky (alá švýcarský nožík), nebo dvou specializovaných (byť velmi podobných)? MaK |
||
Kajman Profil |
#2 · Zasláno: 25. 2. 2014, 16:10:01
To bude podobné dilema, jak v tématu SQL antipattern?
Tedy můžete ještě navíc zvážit variantu 1b typ ENUM('pes',kocka'), id_psa INTEGER, id_kocky INTEGER, aby se daly použít cizí klíče i pro jednotabulkové řešení. |
||
peta Profil |
id_komentar, text
id_kocky, id_komentar - propojeni id_psi, id_komentar - propojeni id_komentar, id_clanek, text id_clanek, id_kategorie (pes, kocka), text Delit to ma smysl, pokud by to prineslo vyraznejsi usporu v rychlosti, coz do 1.000.000 zaznamu ani nepostrehnes a navic to budes mit univerzalni. |
||
Časová prodleva: 12 let
|
0