Autor | Zpráva | ||
---|---|---|---|
Stomas Profil |
#1 · Zasláno: 29. 12. 2009, 23:39:23 · Upravil/a: Stomas
Čau, asi hledám pod špatnými hesly nebo já nevím, ale nemůžu vygooglit, jak by měla vypadat tabulka, když bych chtěl vytvořit na webu komunikační systém. Myslím tím komunikaci mezi uživateli, kteří by si mohli posílat zprávy, něco podobného jako je v *t*r*a*v*i*a*n*u*. Snažil jsem se samozřejmě vymyslet i vlastní systém, ale nevím jak na to tak, aby se při každé nově vytvořené zprávě nevytvářela nová tabulka, napadlo mě i do tabulky vkládat pole, ale bylo by složité je editovat. Nemáte s tím zkušenosti?
Ps. Sorry, jestli by to mělo být spíš v rubrice pro databáze, ale tahla problematika se podle mě hodí i sem :). |
||
Joker Profil |
#2 · Zasláno: 29. 12. 2009, 23:46:45
Na co potřebujete víc než jednu tabulku?
Takové jednoduché zasílání zpráv by mohla být jediná tabulka, sloupce by mohly být: ID zprávy, od (ID autora zprávy), komu (ID adresáta), datum odeslání, text zprávy, příznak přečteno/nepřečteno. |
||
Stomas Profil |
#3 · Zasláno: 29. 12. 2009, 23:52:00
Já právě chci 1 jedinou tabulku :)... No to je zajímavý, ale jak u toho vyřeším třeba odpovědi, když někdo na zprávu odpoví, tak bych chtěl, aby se zobrazila celá zpráva.
|
||
Stomas Profil |
#4 · Zasláno: 30. 12. 2009, 00:02:14
Mě tak napadá, že pokud tady na fóru se nezakládá s každým tématem nová tabulka, tak phpbb bude mít dělaný tabulky tak nějak jak bych potřeboval.
|
||
Alphard Profil |
#5 · Zasláno: 30. 12. 2009, 00:22:31
Stomas:
„že pokud tady na fóru se nezakládá s každým tématem nová tabulka“ V žádném případě, to by nám hosting poděkoval :-) Tady je jedna tabulka minibb_topics pro vlákno a druhá minibb_posts pro příspěvky v něm. Kategorie jsou v minibb_forums. |
||
Stomas Profil |
#6 · Zasláno: 30. 12. 2009, 00:35:46
Ja si to myslel :)... a jak tedy resit tento problem? jak ma vypadat tema v 1 radku se vsemi prispevky?
|
||
Alphard Profil |
#7 · Zasláno: 30. 12. 2009, 00:41:44 · Upravil/a: Alphard
Stomas:
Zatím jste nenapsal, jakou máte představu o struktuře komunikačního systému. Ne všichni znají Travian. Nemají to tam stylem, že se původní zpráva do odpovědi kopíruje? Pak viz [#2] Joker, jen bych k tomu dal ještě příznak smazání. |
||
Joker Profil |
#8 · Zasláno: 30. 12. 2009, 00:41:50
Stomas:
„Já právě chci 1 jedinou tabulku :)“ A my potřebujeme vědět v čem přesně je problém, že to nejde ;-) „ale jak u toho vyřeším třeba odpovědi“ To záleží na požadované funkčnosti. Jedna cesta je posílat text původní zprávy normálně v textu odpovědi, jako se to dělá třeba u e-mailů. No anebo přidat do tabulky sloupec s ID zprávy, na kterou se reaguje. „pokud tady na fóru se nezakládá s každým tématem nová tabulka, tak phpbb bude mít dělaný tabulky tak nějak jak bych potřeboval.“ Za prvé, aplikace obvykle dělají jen operace se záznamy v tabulkách, tj. s řádky. Cokoliv jiného by mělo být zvláštní případ (například instalace, aktualizace a podobně). Za druhé, tohle je miniBB, ne phpBB... a tohle fórum neumožňuje posílat zprávy přímo mezi uživateli. Pro zajímavost, mám tu starou databázi z phpBB 2, kde si uživatelé mohou posílat zprávy (soukromé zprávy) a tabulka pro soukromé zprávy obsahuje tohle: - ID zprávy - typ (to přesně nevím k čemu je) - předmět zprávy - od (autor) - pro (adresát) - datum - IP adresa odesilatele - příznak Povolit bbcode - příznak Povolit HTML - příznak Povolit smajlíky - příznak Připojit podpis ...v phpBB 2 pokud byla reakce na zprávu, text původní zprávy se vložil do nové zprávy ve značce [quote] |
||
Stomas Profil |
#9 · Zasláno: 30. 12. 2009, 01:01:55
jj, chapete dobre... prispevky jsou oddeleny carou s datem a casem... co je to quote?
|
||
Alphard Profil |
#10 · Zasláno: 30. 12. 2009, 01:15:01
Stomas:
„prispevky jsou oddeleny carou s datem a casem“ Takže viz Joker. „co je to quote?“ Značka pro citaci. Může se zobrazit třeba kurzívou. |
||
Stomas Profil |
#11 · Zasláno: 30. 12. 2009, 01:19:07
Alphard, Joker:
Ok, díky moc :)... jen pro zajímavost, když bych chtěl jednotlivé příspěvky v tom řádku editovat, tak jako je to tady, tak by to vypadalo jak :)? |
||
Alphard Profil |
#12 · Zasláno: 30. 12. 2009, 01:25:12
Stomas:
„tak jako je to tady“ Viz [#5] Alphard Každý příspěvěk je jako samostatný záznam v tabulce a všechny příspěvky k jednomu vláknu se vážou ke společnému záznamu vlákna. Další možnost, která se mi docela líbí. Podívejte se až na komentáře, článek jsem vybral náhodně (jen jsem zrovna nenašel žádný, kde by komentáře nebyly uzavřeny). |
||
Stomas Profil |
#13 · Zasláno: 30. 12. 2009, 01:33:08
Alphard:
„Každý příspěvěk je jako samostatný záznam v tabulce a všechny příspěvky k jednomu vláknu se vážou ke společnému záznamu vlákna.“ To by ale znamenalo, že každé téma má vlastní tabulku, takže tomu nerozumím :( Na to druhý se hned podívám ;) |
||
Alphard Profil |
#14 · Zasláno: 30. 12. 2009, 01:37:00
Stomas:
„To by ale znamenalo, že každé téma má vlastní tabulku, takže tomu nerozumím :(“ Ne, to jste špatně pochopil, jsou jenom 2 tabulky. Možná si nastudujte databázovou terminologii. Databáze obsahuje tabulky a jednotlivým řádkům v tabulce se říká záznamy. |
||
Stomas Profil |
#15 · Zasláno: 30. 12. 2009, 01:48:25
Alphard:
„Databáze obsahuje tabulky a jednotlivým řádkům v tabulce se říká záznamy.“ JJ, to vím a proto to nechápu, když budu do tabulky s každým příspěvkem vkládat nový řádek, tak jejich systém musí být ale složitější, než mi ukazoval Joker, protože nějak se musí odlišit, jestli řádek patří do konverzace mezi uživatelem A a B v určitém tématu a nebo C a D v nějakém jiném tématu. Jak by tedy vypadaly vlákna? Tou další možností myslíš odkazovaní? např: [15] Borek? |
||
Alphard Profil |
#16 · Zasláno: 30. 12. 2009, 09:30:02
Stomas:
„Tou další možností myslíš odkazovaní? např: [15] Borek?“ Především. U diskuse mezi dvěma lidmi možná ale není potřeba to více komplikovat. „když budu do tabulky s každým příspěvkem vkládat nový řádek, tak jejich systém musí být ale složitější, než mi ukazoval Joker, protože nějak se musí odlišit, jestli řádek patří do konverzace mezi uživatelem A a B“ Ano, to je ta druhá verze se 2 tabulkami, píši to asi po třetí. Viz [#12], „a všechny příspěvky k jednomu vláknu se vážou ke společnému záznamu vlákna (v té druhé tabulce)“. Přesný návrh tabulek vám napsat nemůžu, nevím, co přesně od toho očekáváte. |
||
Joker Profil |
#17 · Zasláno: 30. 12. 2009, 11:18:13
Stomas:
„nějak se musí odlišit, jestli řádek patří do konverzace mezi uživatelem A a B v určitém tématu a nebo C a D v nějakém jiném tématu“ Kdo s kým vede konverzaci tam přece máte. Příchozí zprávy daného uživatele jsou SELECT z tabulky zpráv, kde sloupec komu je daný uživatel. Odchozí zprávy daného uživatele jsou SELECT z tabulky zpráv, kde sloupec od je daný uživatel. A v jakém tématu a jiném tématu? Pro zasílání zpráv mezi dvěma uživateli žádná témata nejsou potřeba. V první řadě si tedy ujasněme, jestli chcete dělat zasílání zpráv mezi dvěma uživateli (tj. něco jako e-mail nebo soukromé zprávy), nebo diskusní fórum s vlákny a tak vůbec. Pokud jde o vlákna konverzace, jednoduchou metodu jsem naznačil už výše s tím sloupcem- ID zprávy na kterou se reaguje. Pro vlákna by to ale bylo lepší nějak takhle: Přidal by se sloupec ID vlákna, kde - Pokud zpráva nereaguje na žádnou jinou (tj. potenciálně zakládá nové vlákno), bylo by ID vlákna = ID zprávy - Pokud zpráva reaguje na jinou zprávu, bylo by ID vlákna = ID vlákna té zprávy na kterou reaguje (Ve výsledku by tedy všechny zprávy v jednom vlákně měly stejné ID vlákna, a sice ID zprávy, která vlákno založila) Zobrazení celého vlákna by pak bylo: SELECT z tabulky zpráv, kde ID vlákna je stejné jako ID vlákna dané zprávy, seřadit vzestupně podle času odeslání. |
||
Stomas Profil |
#18 · Zasláno: 30. 12. 2009, 11:49:38
Alphard, Joker:
Znovu jsme si to pročetl a už to chápu :), sorry za nechápavost xD a moc díky |
||
Časová prodleva: 14 let
|
0