Šeptání v diskuzi – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Šeptání v diskuzi – MySQL – Fórum – Programujte.comŠeptání v diskuzi – MySQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
JannBaill0
Návštěvník
16. 5. 2009   #1
-
0
-

Zdravím.
Neřešili jste už někdo možnost šeptání v diskuzi? Hledám inspiraci jak ho, pokud možno elegantně, zakomponovat...

Napadlo mě ukládat do sloupce k příspěvku ID uživatelů, kterým se má daný příspěvek zobrazit, oddělené například středníkem a při vypisování ty hodnoty rozdělit do pole a zkontrolovat, jestli je tam i ID přihlášeného uživatele. Pokud by bylo, příspěvek by se vypsal, jinak by se přeskočil, ale podle člověka, se kterým na té diskuzi pracuju, to není nejlepší řešení a je pravda, že by tak mohly vznikat ,,prázdné" stránky plné příspěvků, které by viděli pouze určití uživatelé.

Další nápad (tentokrát už ne můj) byl generovat tabulku pro příspěvky (každá část diskuze bude mít vlastní tabulku pro obecné informace a příspěvky) podle počtu lidí zúčastňujících se dané diskuze (tento počet se od založení diskuze většinou nemění). Tak by každý uživatel měl ,,svůj sloupec" v tabulce k příspěvkům a z db by se pak vybíraly pouze příspěvky, u kterých má tento sloupec hodnotu 1. Tohle řešení pro změnu nepřipadá elegantní mně...

Pravdou je, že nevím, které řešení je lepší, a že nic dalšího se mi nepodařilo vymyslet či najít. Děkuji za jakoukoli Vaši připomínku, nápad, anebo, v nejlepším případě, osvědčené řešení.

Nahlásit jako SPAM
IP: 88.100.115.–
Reklama
Reklama
dannyk0
Věrný člen
16. 5. 2009   #2
-
0
-

Jestli sem to pochopil spravne, tak mate nejakou diskuzi, do ktere muze kazdy verejne psat a zaroven ma moznost poslat nejaky vkaz do te diskuze pouze urcite osobe, takze si ji muze precist jen ona a ne nikdo jiny.

Nevim, jak to mate momentalne navrhnte (celkove mi to prijde takove nestastne, nebyly by lepsi klasicky PM?), ale kdyz uz bych to resil, tak jak to potrebujete vy, tak bych si udelal asi takovou tabulku:



id_prispevek, id_diskuze, id_prispevovatel, id_adresat, text

Pri vkladani verejneho prispevku by se jako id_adresat zvolila nejak specialni hodnota (napr. -1) nebo id, komu se septa a při vypisovani diskuze bych vypisoval prispevky, kde id_adresat == -1 OR id_adresat == id_prihlaseneho_uzivatele

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
JannBaill0
Návštěvník
16. 5. 2009   #3
-
0
-

To dannyk : asi jsem se nevyjádřil úplně správně. Je diskuze, do které může přispívat x uživatelů, nikdo jiný. Tito uživatelé můžou psát veřejné příspěvky, anebo příspěvky šeptané, které můžou ,,poslat" jedné - xté osobě (s jedním sloupcem id_adresat by se tak příspěvek musel vkládat několikrát) a tento příspěvek by měl být součástí diskuze, proto PM nejsou řešení, které potřebujeme.

Přibližný návrh tabulek je takový: (ještě pořád se mění)



tabulka_uzivatele
ID, jmeno, (dalsi udaje)

tabulka_diskuze_prispevky
ID, ID_autor, text, (dalsi udaje) + sloupec/sloupce vztahující se k šeptání

Nahlásit jako SPAM
IP: 88.100.115.–
dannyk0
Věrný člen
16. 5. 2009   #4
-
0
-

1, Tem vice radkum se stejnym ID se nevyhnete, tak to proste musi byt.Tedka akorat rozhodnout, co bude vyhovovat nejvice.
Resenim je udelat si spojovaci tabulku adresat:



tabulka_adresat
ID, ID_uzivatel, ID_prispevek

V teto tabulce by byly ulozene veskere septaci odkazy na prispevky.Takze treba:


ID:1 ID_A: 2 ID_P:3
ID:2 ID_A: 3 ID_P:3

ukazuje, ze uzivatelum s ID 2 a 3 se ukaze prispevek s ID 3 atd.

Ono je to vlastne to same, co sem navrhoval v predchozim prispevku, ale tohle je vice spravne reseni, protoze se odstrani duplicity jinych dat v te tabulce.

Tohle me tedka tak v rychlosti prislo jako asi nejoptimalnejsi reseni.Mozna vas to nakopne a vymyslite jeste neco lepsiho.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
JannBaill0
Návštěvník
16. 5. 2009   #5
-
0
-

To dannyk : tohle mě nenapadlo a vypadá to víc než použitelně :). Díky za Tvoje rady.

Nahlásit jako SPAM
IP: 88.100.115.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý