Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem SQL - enum nebo tabulku zvlášť

Ahoj,

navrhuji si databázi, potřeboval bych ale poradit

mám nějaký neurčitý počet druhů objektů (lampičky, stoly, knihy, židle), každý druh má svoji tabulku, co řádek to jeden objekt (primárním klíčem je integer 'id' u všech tabulek)
pak mám tabulku uživatel, a chtěl bych nějak propojit objekty a uživatele vazbou N:N (kdo k nim má přístup)
navrhl jsem si tabulku přístupy, která by obsahovala: id uživatele, id objektu, typ objektu (jako do které tabulky se má sáhnout)

a teď nevím jestli 3. sloupec "typ objektu" dát jako:

1. ENUM - což by bylo asi bylo jednodušší na implementaci, ale zase horší pro změny ?
2. tabulku "typy objektů" která by měla id a jméno typu objektů (a do přístupů by šlo id jako cizí klíč) ale zase "docela zbytečná" tabulka navíc?

Jaké z těch dvou řešení je lepší? Nemám tušení jak by to bylo s výkonem. A nebo máte lepší návrh jak to vyřešit?

Děkuji předem :-)

Předmět Autor Datum
databaza o 3 tabulkach a ty riesis vykon? pokial je len mala sanca, ze nieco sa moze menit, tak robi…
wam_Spider007 17.04.2014 00:03
wam_Spider007
Hloupe v tom návrhu je už to, že máš pro každý objekt zvláštní tabulku. Tak se to fakt nedělá.
Jan Fiala 17.04.2014 10:19
Jan Fiala
Ty objekty se od sebe dost liší, někde jsou jen dva sloupce někde 10, navíc můžou mít relace na vlas…
Soudruh 17.04.2014 21:28
Soudruh
Pokud trváš na svém řešení, pak si vytvoř tabulku s typy objektu. Tu budes moct jednoduse upravovat.… poslední
Jan Fiala 18.04.2014 09:27
Jan Fiala

databaza o 3 tabulkach a ty riesis vykon?
pokial je len mala sanca, ze nieco sa moze menit, tak robit fixne riesenie, ktore pri zmene budes musiet preprogramovat, je nezmysel. takze urcite je vhodnejsie pouzit univerzalnejsie riesenie podla bodu 2.

btw, preco ma kazdy druh svoju tabulku, ked ich je neurcity pocet? chyba tomu univerzalnost.

Ty objekty se od sebe dost liší, někde jsou jen dva sloupce někde 10, navíc můžou mít relace na vlastní tabulku, mezi sebou, na nějakou jinou, a dávat tam speciální sloupec který by určoval typ objektu je uplná blbost.

Jde mi jen o to jak zajistit aby šlo určit vlastnictví těch objektů kde může mezi uživatelem a objektem být vazba N:N.
Šlo by to vyřešit vazební tabulkou ke každému typu objektu, ale chtěl bych to nějak zjednodušit.

Pokud trváš na svém řešení, pak si vytvoř tabulku s typy objektu. Tu budes moct jednoduse upravovat.
A vazebni tabulce se nevyhnes.

Mam dojem, ze se snazis pomoci relacni databaze resit to, co by spis mela resit objektova databaze.

Z meho pohledu bych to resil tak, ze bych mel tabulku objektu (ID_Objektu, datum porizeni, TypObjektu, rozmery,. vahu, DKP a kdovi, co jeste je spolecne pro vsechny), ktera by obsahovala spolecne vlastnosti.
K ni bych mel dalsi tabulku (nudli), ktera by obsahovala ID_Objektu, ID_Vlastnosti a hodnotu vlastnosti. Tak bys byl schopny libovolne pridavat vlastnosti dalsi jednotlivych objektu.

Zpět do poradny Odpovědět na původní otázku Nahoru