Zadejte hledaný výraz...

Mysql – navrh databazy pre POSTA

monty
verified
rating uzivatele
23. 1. 2008 23:14:09
Zdravim,
planujem teraz robit posielanie posty medzi uzivatelmi, teda kazdy uzivatel moze niekomu napisat, moze dostat, moze ju vymazat, ale moze napisat rozpisanu, teda su 4 urovne
1- dorucena
2- odoslana
3- rozpisana
4- v kosi
Tabulka by mala vyzerat:
ID, ID_POSIELA, ID_DOSTAL, PREDMET, SPRAVA, DATUM, PRECITAL, UROVEN
Ale chcel by som aby ste mi poradilo rozumne riesenie ako to spravit 'co najlepsie'. Problem je to, ze ako spravit aby spravu videl aj ten co ju dostal a aj ten co ju poslal, resp musi byt zadana asi 2x, pretoze ked ju jeden z nich vymaze aby bola k dispozicii tomu druhemu.
Alebo 2 tabulky?
Poradite? Urcite ste nieco taketo robili a vyznate sa.
Dakujem velmi pekne.
23. 1. 2008 23:14:09
https://webtrh.cz/diskuse/mysql-navrh-databazy-pre-posta#reply38984
lukaspulda
verified
rating uzivatele
(24 hodnocení)
23. 1. 2008 23:49:05
Nejsou potreba ani dve tabulky ani se zprava nemusi ukladat 2x. Staci aby jsi upravil "PRECITAL" treba na "STAV" kde:
0 - odeslano, neprecteno
1 - odeslano, precteno
2 - smazano prijemcem
3 - smazano odesilatelem
Tzn, pokud odesilatel nebo prijemce zpravu vymaze, nedojde k jejimu faktickemu smazani, jen se zmeni stav v databazi a obsluhujici system zpravu schova.
23. 1. 2008 23:49:05
https://webtrh.cz/diskuse/mysql-navrh-databazy-pre-posta#reply38983
Vebloud
verified
rating uzivatele
24. 1. 2008 13:38:40
Asi nejflexibilnějí řešení je mít na zprábu jednu tabulku a pak mít druhou, ve které je ID_Uzivatele, ID_Zpravy, odesilatel/prijemce(idealne booleanem). No pak to vazbama přes cizí klíče s použitím InnoDB pěkně provážeš tak, že dokud nejsou smazány oba záznamy z té vazební tabulky, tak nepujde smazat ani zpráva a naopak, když se smažou oba zaznamy, vymaže se i zpráva(ale teď si s fleku nejsem jist, jestli to automatické smazaní pujde bez Triggeru)
24. 1. 2008 13:38:40
https://webtrh.cz/diskuse/mysql-navrh-databazy-pre-posta#reply38982
monty
verified
rating uzivatele
1. 2. 2008 12:33:28
Napsal lukaspulda;30120
Nejsou potreba ani dve tabulky ani se zprava nemusi ukladat 2x. Staci aby jsi upravil "PRECITAL" treba na "STAV" kde:
0 - odeslano, neprecteno
1 - odeslano, precteno
2 - smazano prijemcem
3 - smazano odesilatelem
Tzn, pokud odesilatel nebo prijemce zpravu vymaze, nedojde k jejimu faktickemu smazani, jen se zmeni stav v databazi a obsluhujici system zpravu schova.
A co ak to zmazu obaja?? Hm?
1. 2. 2008 12:33:28
https://webtrh.cz/diskuse/mysql-navrh-databazy-pre-posta#reply38981
lukaspulda
verified
rating uzivatele
(24 hodnocení)
4. 2. 2008 12:46:30
Napsal monty;31916
A co ak to zmazu obaja?? Hm?
Pokud to bude chtít smazat příjemce nebo odesílatel a zjistíš, že ta zpráva již druhou stranou je smazaná, tak ji prostě odstraníš z databáze (celý ten řádek)
4. 2. 2008 12:46:30
https://webtrh.cz/diskuse/mysql-navrh-databazy-pre-posta#reply38980
Pro odpověď se přihlašte.
Přihlásit