Autor Zpráva
Saky
Profil *
Ahojky, řeším dilema jak zajistit jednoznačné ID v rámci několika tabulek.
Mám databázi (MySQL) kde mám mimo jiné tabulky profil, stranka a hodnoceni... Na stránce s daty z tbl profil i stránka bude umístěno hodnocení s tabulky hodnocení. Potřebuji tedy do tabulky hodnocení dát jedinečné ID ať jde o tabulku profil, či stránky. Napadají mě 2 řešení:
1)Vytvořit třetí tabulku s autoincrement kde budu udržovat jednoznačné id a propojovat například pomocí sloupce vazba v profilech i stránkách
2)Nastavit autoincrement u každé tabulky na jinou počáteční hodnotu, tedy u profilů začínající 1000, u stránek začínající 5000

Ani jedno z řešení se mi však příliš nelíbí v první případě bude nutné před každou registrací, či vytvořením stránky uložit a zjistit ID do pole vazba, v druhém může časem dojít k vyčerpání "volných" ID (5000 registrací)...

Jak toto řešíte? Uvítám jakékoliv nakopnutí správným směrem :-)
Díky za TIPy :)
xmark
Profil
Saky:
Potřebuji tedy do tabulky hodnocení dát jedinečné ID
Proč? Neumíš odlišit <a href="?idstranky=.."> a <a href="?idprofilu=.."> ?
Saky
Profil *
xmark:
Asi jsem se špatně vyjádřil :-). Vypisuji z SQL profil a za vyplněné údaje potřebuji vypsat hodnocení profilu.
Dotaz:
SELECT hodnoceni FROM hodnoceni WHERE vazba=(ID Profilu)

U stránky pak bude
SELECT hodnoceni FROM hodnoceni WHERE vazba=(ID stránky)

Problém právě je, že profily i stránky MySQL čísluje od 0, tedy ID Profilu a ID stránky budou stejně číslována.
Tori
Profil
Pokud ke každé stránce, profilu apod. může být max. jedno hodnocení, stačí rozšířit tabulku hodnocení o sloupce:
id_předmětu, kategorie (= k čemu se to id_předmětu vztahuje, stránka/profil/...)

Pokud jich může být víc, tak samostatnou vazební tabulku:
id (auto_increment), id_předmětu, id_hodnocení, kategorie

- takže selecty budou asi
WHERE id_predmetu = 2 AND kategorie = 'stranka'
xmark
Profil
Saky:
Jestli ses v těch dvou dotazech nespletl a máš to opravdu takhle, tak nerozumím, čeho chceš dosáhnout a myslím, že na to jdeš dost zásadně špatně.
Zkusím tipnout: Vytvoř si v tabulce hodnoceni místo sloupce "vazba" sloupce IDprofilu a IDstranky a pracuj s tím pomocí nich.
Tori
Profil
xmark:
Vytvoř si v tabulce hodnoceni místo sloupce "vazba" sloupce IDprofilu a IDstranky
a co když bude za měsíc chtít přidat hodnocení dalších pěti věcí?
xmark
Profil
Tori:
a co když bude za měsíc chtít přidat hodnocení dalších pěti věcí?
Aha, uvažuješ trochu jinak než já. Měl jsem za to, že v té tabulce budou hodnocení stránek lidmi, tzn. ID stránky a ID hodnotícího. Nevím, jestli jsem špatně četl, nebo Saky špatně formuloval.
TomášK
Profil
Saky:
Řešení, které popsal Tori se používá i v Ruby on Rails pod názvem polymorphic associations.
Saky
Profil *
Děkuji za všechny reakce.
Nezmínil jsem, že těch provázaných tabulek je 6, nicméně není vyloučeno, že ještě přibudou. Použiji řešení vazební tabulkou z #4.
Díky za všechny rady :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: