Autor Zpráva
Foi
Profil
Mám mezi uživateli spojení. Než budou dva uživatelé ve spojení, tak se musí dát žádost a druhý jí musí přijmout.

Je vhodné mít spojení a žádosti o spojení v oddělených tabulkách?

Mám dva primární klíče, první od koho, druhý pro koho.
od_koho PK
pro_koho PK
prijato

Jak zamezit duplicitním hodnotám? Například mám uživatele A a B.

Uživatel A zažádá B => PK(A, B)
Následně zažádá B => PK(B, A)


Ptám se, protože v tom nemám zcela jasno a podobné případy mám celkem často, tak se ptám na best-practise
Kajman
Profil
Já bych tam ty duplicity dělal schválně, aby mi to zjednodušilo dotazy a nemusel jsem tam mít stále uniony. Tedy po schválení bych přidal dva řádky. Při mazání zase smazat i obrácenou vazbu.

Pokud jsou ty duplicitní řádky problém, tak si můžete dát pravidlo, že od_koho<pro_koho.

Foi:
Je vhodné mít spojení a žádosti o spojení v oddělených tabulkách?
Já bych to v tomto případě dával do dvou tabulek, zjednoduší to spoustu dotazů (šlo by udělat view na platná spojení, ale to zjednoduší dotazy jen pro programátory ale ne pro databázi).
Foi
Profil
Nakonec jsem to hodinu po vložení udělal tak jak píšeš. 2 tabulky a přijaté id < id2, takže nemusím psát 2 OR a hlídá si tohle model.

A duplicitní hodnoty řeším tak, že po vložení zkontroluji, jestli druhý záznam neexistuje a pokud existuje tak je vymažu a přesouvám do druhé tabulky.

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:

0