Autor | Zpráva | ||
---|---|---|---|
tonda13 Profil |
#1 · Zasláno: 11. 2. 2011, 14:15:13
Zdravím.
Mám menší dilema. Je lepší mít v DB jednu tabulku nebo více menších? Trochu to upřesním. Například uživatel si bude ukládat odkazy na zajímavé stránky (jako to dělá delicious). Je lepší mít tabulku 'Bookmarks' a v ní všechny uložené odkazy od všech uživatelů a rozlišovat je pomocí sloupce 'Owner' nebo je lepší mí pro každého uživatele samostatnou tabulku a v ní jen jeho odkazy? Vše za předpokladu cca 10 000 odkazů a cca 100 uživatelů (1 uživatel 100 odkazů řekněme). |
||
Taps Profil |
#2 · Zasláno: 11. 2. 2011, 14:26:47
tonda13:
je lepší mít více tabulek a propojené je pomocí relace (1:N, 1:1,M:N) |
||
tonda13 Profil |
#3 · Zasláno: 11. 2. 2011, 14:34:09
Taps:
To jsi asi úplně nepochopil můj dotaz. Zajímá mě jestli je lepší mít jednu tabulku 'Bookmarks' řekněme s 10 000 (časem třeba i se 100 000) záznamy nebo více tabulek, tj. pro každého uživatele jednu. Například: tonda13_bookmarks, Taps_bookmarks, ... P.S. Samozřejmě, že tam budou ještě i jiné tabulky jako třeba 'users', atd. |
||
Kajman_ Profil * |
#4 · Zasláno: 11. 2. 2011, 14:36:20
tonda13:
„Je lepší mít tabulku 'Bookmarks' a v ní všechny uložené odkazy od všech uživatelů a rozlišovat je pomocí sloupce 'Owner' nebo je lepší mí pro každého uživatele samostatnou tabulku a v ní jen jeho odkazy?“ Jedna tabulka je lepší řešení. Taps má asi na mysli dvě tabulky - tabulka odkazů, kde každý bude mít id a tabulku vazeb uživatel-odkaz. Ale nejsem si jistý, jestli se to v tomhle případě vyplatí - zda by to nebylo zbytečně moc programování navíc. |
||
Joker Profil |
#5 · Zasláno: 11. 2. 2011, 15:05:34
tonda13:
„Jedna velká tabulka nebo více menších?“ Já bych to obecně řekl takhle: Prakticky nikdy nemá smysl tabulku dělit na několik menších tak, že: a) Vytvořím další úplně stejnou tabulku a přesunu do ní část záznamů. b) Vyndám některé sloupce tabulky do zvláštní tabulky, která bude s tou původní mít vztah 1:1. Přestože existují zvláštní situace, kde taková řešení mohou mít smysl, hlavně začátečníci se s nimi prakticky nesetkají. |
||
xmark Profil |
#6 · Zasláno: 11. 2. 2011, 15:08:31
tonda13:
„nebo více tabulek, tj. pro každého uživatele jednu.“ To v žádném případě. Odkazy v jedné tabulce, osoby v druhé. Druhé řešení - tabulka osob, tabulka adres, propojovací tabulka vazeb - je ke zvážení. |
||
joe Profil |
#7 · Zasláno: 11. 2. 2011, 15:13:11
Jedna tabulka = jedna entita
Takže třeba entita Uživatelů -> jedna tabulka s uživateli entita bookmarků -> další tabulka pro bookmarky Jaký by mělo význam mít pro každého uživatele jinou tabulku s úplně stejnými sloupci? |
||
TomášK Profil |
#8 · Zasláno: 11. 2. 2011, 16:03:09
joe:
„Jaký by mělo význam mít pro každého uživatele jinou tabulku s úplně stejnými sloupci?“ Pokud o databázích skoro nic nevíš, pak to dává smysl. Když budeš mít jednu tabulku pro každého uživatele a budeš o něm potřebovat něco najít, víš kam se podívat. Když budeš mít jednu velkou tabulku se všemi uživateli, bude se patrně muset prohledávat vždy celá, a to asi bude pomalé, když uživatelů je hodně. Neplatí to díky indexům, o kterých často začínající uživatelé nevědí, případně faktu, že vyhledávání v databázi je natolik rychlé, že je výhodnější mít dobrou strukturu než zkoušet nějaké optimalizace. Začátečník si neuvědomí, že v mnoha stejných tabulkách půjde jen těžko vyhledávat, natož dělat nějaké složitější operace. |
||
Časová prodleva: 13 let
|
0