Autor | Zpráva | ||
---|---|---|---|
Witiko Profil |
#1 · Zasláno: 7. 2. 2011, 20:25:40 · Upravil/a: Witiko
Zdravím databázové subfórum,
|
||
Witiko Profil |
#2 · Zasláno: 7. 2. 2011, 20:32:08 · Upravil/a: Witiko
Tvořím návrh MySQL databáze pro recepty a neustále mě dohání sžíravý pocit, že návrh tabulky není to pravé ořechové. Posuďte sami, mám dvě tabulky RECEPTY a INGREDIENCE. V každé z nich jsou záznamy označené unikátním identifikátorem pro danou tabulku. Ke každému receptu potřebuji přidat seznam použitých ingrediencí, což je podobný případ, jako je k nalezení v místním F.A.Q. Nejprve jsem zvažoval textové pole s identifikátory ingrediencí na pozdější rozparsování, tedy něco takového:
1,124,547,16,267... Toto řešení mi ale z hlediska normalizace tabulek připadalo velice nehezké a tak jsem se poohližel po alternativě. Avšak jediné co mě napadlo, je vytvořit novou tabulku pro každý recept s názvem např. RECEPT_123_INGREDIENCE a do něj vložit veškeré ingredience. Je to lepší, umožňuje mi to přidat k ingredienci i její množství apod. ale indexování za pomoci názvu se mi příliš nelíbí. Ukázka: RECEPTY (Identifikátor, Jméno): >> 0, Vepřo Knedlo Zelo >> 1, Vepřová Zmrzlina INGREDIENCE (Identifikátor, Jméno): >> 0, Vepřové maso >> 1, Zelí >> 2, Knedlíky >> 3, Led RECEPT_0_INGREDIENCE (Identifikátor ingredience, Množství): >> 0, 1500g >> 1, 500g >> 2, 10 RECEPT_1_INGREDIENCE (Identifikátor ingredience, Množství): >> 0, 2500g >> 3, 1000g Je zde nějaké lepší řešení? |
||
TomášK Profil |
#3 · Zasláno: 7. 2. 2011, 20:33:16
Witiko:
Přidej třetí tabulku recepty_ingredience(recept_id, ingredience_id, ..., mnozstvi, ...) |
||
Kajman_ Profil * |
#4 · Zasláno: 7. 2. 2011, 20:33:44
Stačí jedna vazební tabulka. Sloupce budou nejspíše
id_receptu, id_ingredience, mnozstvi (jednotky bych dal asi do tabulky ingredience. Když bude mít recept 6 ingrediencí, bude mít v téhle tabulce šest řádků. Když byste si to odkazované FAQ přečetl, věděl byste to. |
||
Witiko Profil |
#5 · Zasláno: 7. 2. 2011, 20:41:34
Kajman:
„Když byste si to odkazované FAQ přečetl, věděl byste to.“ Děkuji za postrčení, samozřejmě je to logické. FAQ jsem si přečetl, jinak bych na něj neodkazoval, nějak mě to přesto nenapadlo. :) |
||
Časová prodleva: 13 let
|
0