Autor Zpráva
Monty
Profil *
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.
Kajman_
Profil *
Pokud chcete jednu zprávu v systému, tak ty pro úroveň potřebujete dva sloupečky... jeden z pohledu odesílatele a jeden z pohledu příjemce.
Monty
Profil *
no a teda ake bunky by mala obsahovat tabulka?
Kajman_
Profil *
Místo uroven by mohlo být uroven_z_pohledu_odesilatele a uroven_z_pohledu_prijemce.
Mastodont
Profil
Kajman_
Proč by pro tu úroveň potřeboval dva sloupečky?? Doručená a odeslaná se dá jasně odvodit z ID_POSIELA, ID_DOSTAL, rozepsanou poštu ten druhý vůbec neuvidí (nesmí vidět!) a koš nemá vůbec vliv.

Došlá pošta - select ... where ID_DOSTAL = mojeID and UROVEN <> "kos" OR UROVEN <> "koncept"

Odeslaná pošta - select ... where ID_POSIELA = mojeID and UROVEN <> "kos" OR UROVEN <> "koncept"

Rozepsaná - select ... where ID_DOSTAL = mojeID and UROVEN = "koncept"

Asi tak nějak by to mělo být.
Kajman_
Profil *
Protože, když ji příjemce dá do koše, tak se do koše dá i odesílateli.
tiso
Profil
Mastodont - v tom poslednom má byť miesto ID_DOSTAL ID_POSIELA

Pokiaľ sa tá pošta zorazuje len z DB stačia 3 statusy - koš, koncept, odoslaná (pre doručenú i odoslanú poštu)

edit: miesto dvoch stĺpcov sa dá použiť jeden a status koš rozdeliť na kos_odosielatel, kos_prijimatel a kos_obaja
Mastodont
Profil
Kajman_
Protože, když ji příjemce dá do koše, tak se do koše dá i odesílateli.

To je ovšem silně nežádoucí chování.

tiso
Ano, díky.

Ve stavu by se daly používat bitové příznaky, pak stačí jeden sloupec.
koma
Profil *
posta: ID,PREDMET, SPRAVA, DATUM
prepojovaica ID_USER,ID_POSTA,UROVEN(1- dorucena,1a-precitana,2- odoslana,3- rozpisana,4- v kosi )
Aleš Janda
Profil
Pracovat s jedním řádkem v tabulce ve dvou významech je cesta do pekel. Některé situace by mohly být blbě řešitelné - např. uživatel by si poslal zprávu sám sobě a obě zprávy by pak přesunul do koše; tam by byla dvakrát, podle čeho by se pak daly jednoznačně od sebe odlišit? Nebo co kdybys chtěl v budoucnu více příjemců?

Vřele doporučuju

1) Při poslání brát příchozí zprávu jako úplně novou zprávu, čili ji zkopírovat. To je ale možná méně elegantní řešení

2) Udělat další tabulku "zpravy_ve_slozkach", ve které by bylo nějaké interní id_uzivatele, id_zpravy, precetl, uroven. To id_zpravy by se odkazovalo do té globální tabulky se zprávami. Z globální tabulky by se zprávy vymazaly po odstranění všech řádků na ni odkazujících.

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