Věci, které je třeba u svých přístupů zvážit
Ukládání uživatelského profilu do tabulky uživatelů
- Toto bude obecně nejrychlejší přístup, pokud jde o získání údajů o profilu, i když zde můžete mít mnoho nadbytečných údajů (sloupce, které nemusí obsahovat žádné informace).
- Rychlé (zejména pokud z databáze stahujete pouze potřebné sloupce)
- Plytvá data
- Obtížnější práce s/údržba (pravděpodobně s rozhraními, jako je PHPMyAdmin)
Uložení profilu uživatele ve vztahu k uživatelům v tabulce User_Profile Table 1-1
- Mělo by být stále poměrně rychlé s připojením a můžete odstranit určitou nadbytečnost dat, pokud se uživatelské profily nevytvoří, dokud uživatel žádný nevyplní.
- Snazší práce
- Ještě trochu pomaleji kvůli připojení (nebo druhému dotazu)
Ukládání profilu uživatele jako vlastností a hodnot v tabulkách
*tj. Tabulka pro uložení možných voleb, tabulka pro uložení user_id, option_id a value*
- Žádná nadbytečná data nejsou uložena, všechna data jsou relevantní
- Nejnormalizovanější metoda
- Načítání a aktualizace dat je pomalejší
Můj dojem je, že většina webů používá 2. metodu a ukládá informace o profilu do druhé tabulky, což je běžné u většiny větších webů k denormalizaci databáze (twitter, facebook), aby bylo dosaženo vyššího výkonu při čtení na úkor pomalejšího zápisu.
Domnívám se, že při prohlížení 50 000 záznamů je pravděpodobné, že ponecháte informace o profilu ve druhé tabulce. Chcete-li dosáhnout optimálního výkonu, chcete data, která jsou zapsána, přísně oddělovat od dat, která jsou čtena s velkým objemem, aby mezipaměť mohla fungovat efektivně.