Autor Zpráva
H13
Profil
Ahoj, potřeboval bych znát váš názor.

Při vytváření databáze se rozhoduji mezi dvěmi variantami:

1) Upřednostnění více záznamů v jedné tabulce před vytvářením více tabulek s méně záznamy:
Příklad zjednodušeně:
TABULKA

ID | Jméno | druh
----------------------
0 | prvni | a
1 | druhy | a
2 | treti | b
4 | ctvrty | a

2) Upřednostnění více tabulek s méně záznamy před více záznamy v jedné tabulce:
příklad zjednodušeně:
TABULKA A

ID | Jméno
----------------------
0 | prvni
1 | druhy
3 | ctvrty

TABULKA B

ID | Jméno
----------------------
0 | treti


S tím, že vím, že záznámů 'druh' bude hodně, v druhé variantě tedy mnoho automaticky tvořených tabulek, ale také vím, že například 'druh a' bude vůči 'druhu b' v poměru 1:100 (tedy např. 10 'druhů a' a 1000 'druhů b'. Tedy výhoda (to ale nevím jistě) v druhé variantě, kdy má každý druh svoji tabulku, ale nevýhoda, kdy jsou všechny druhy v jedné tabulce a při výpisu deseti 'druhů a' bude SQL procházet např. tabulky s tisíci řádky, protože tam budou uložené i položky jiných druhů.

Upozorňuji, že vůbec nemám poněntí jak SQL databáze pracuje, takže mé doměnky ohledně zpracování dotazů můžou být úplně mylné. Rád bych slyšel váš názor.

Díky Honza
jonge
Profil
Určitě 2. BTW mohl by sis přečíst něco o relačních databázích... ;)
H13
Profil
takže je lepší mít např. při zadání 1000 druhů po 10 záznamech:

1000 tabulek po 10 záznamech

než

1 tabulku o 10.000 záznamech ???

Nějaký link na relační databáze ( něco o optimalizaci) ???

Díky moc
nightfish
Profil
http://www.fimuni.org/zaklady-databazovych-systemu-pb154/
H13
Profil
http://www.fimuni.org/zaklady-databazovych-systemu-pb154/

tak z 1 NF jsem se dostal přes 2NF do 3NF a BCNF, jenže všude se píše jak rozsekat tabulku tak, aby se tam nevyskytovaly redundance, anomálie, závislosti atd... ale nějak nedokážu zjistit, jestli 'druh' v mém příkladu, kde např. v 1000 řádcích se bude objevovat 600 druhů je kandidát na redundanci a že je lepší vytvořit další tabulky podle druhů ???
Toto téma je uzamčeno. Odpověď nelze zaslat.

0