Autor | Zpráva | ||
---|---|---|---|
Foi Profil |
#1 · Zasláno: 11. 11. 2019, 17:25:04
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 |
#2 · Zasláno: 11. 11. 2019, 22:27:53
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 |
#3 · Zasláno: 13. 11. 2019, 16:42:02
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. |
||
Časová prodleva: 5 let
|
0