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

Forum – MySQL – Fórum – Programujte.comForum – MySQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Michall
~ Anonymní uživatel
9 příspěvků
1. 7. 2007   #1
-
0
-

Ahoj, chtěl bych si udělat forum, ale bohužel mi nenapadla
lepší tabulka než tahle. Tak bych na ní chtěl slyšet váš názor,
popř. jak jí vylepšit. díky


id -- id témat a odpovědí
sekce -- udává kategorii (zde např. PHP, HTML)
nazev -- nazev tématu a pokud se jedná o odpověď tak id tématu ke kterému patří
autor -
datum - datum zadání tématu či odpovědi
zprava -

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
Jan Bednařík0
Super člen
1. 7. 2007   #2
-
0
-

No, já bych to udělal asi takto:

kategorie
- kategorie_id
- nazev

tema
- tema_id
- kategorie_id
- nazev

prispevek
- prispevek_id
- tema_id
- autor_id
- datum
- zprava

Krom toho, že to jsou tři tabulky, komentář doufám netřeba :)

Nahlásit jako SPAM
IP: ...–
Python + Django + PostgeSQL = spokojený vývojář :-)
Michall
~ Anonymní uživatel
9 příspěvků
1. 7. 2007   #3
-
0
-

Nevypadá to špatně :-)
Tak to abych se začal učit spojování tabulek :-)
stejně už to 3 měsíce voddaluju.

řazení předpokládam
1. tabulka kategorie_id
2. tabulka kategorie_id
3. tabulka tema_id
takhle se mi to zdá asi nejrychlejší

Nahlásit jako SPAM
IP: ...–
DeaLer+2
Hero
1. 7. 2007   #4
-
0
-

To Michall: na tom se je co učit?

BTW: ještě bych to rozšířil o popis kategorie

Nahlásit jako SPAM
IP: ...–
Dušan Janošík | web: djanosik.cz, @djanosik
Jan Bednařík0
Super člen
1. 7. 2007   #5
-
0
-

To Michall: Ani tak nejde o spojování tabulek, jako třeba o to, jak bys v tvé verzi udělal SQL dotaz na výpis témat v jedné kategorii a co kdyby uživatel zadal název tématu jako číslo. Navíc si představ, že tam máš několik tisíc příspěvků a všechny je musíš procházet pokaždé, když vypisuješ seznam kategorií a i seznam témat v kategorii. Takhle to bude míň náročné a dotazy budou jednodužší.

K tomu řazení, chápu to tak, že tím myslíš, jak jsou seřazeny řádky přímo v databázi na disku?

A asi bych to celé ještě doplnil o pár vychytávek. Ke kategoriím bych přidal číselný pořadník, protože je asi nebudeš chtít řadit abecedně. Taky bych k tématu přidal datum posledního příspěvku, ať je podle toho může vypisovat, případně i autora příspěvku. Stejně tak bych tam přidal autora tématu. A dal bych uživatelům možnost editovat příspěvky, což je datum poslední editace navíc. A pro DeaLera ještě popis kategorie. Takže asi tak:

kategorie
- kategorie_id
- nazev
- popis
- poradi

tema
- tema_id
- kategorie_id
- nazev
- autor_id
- pos_datum
- pos_autor_id

prispevek
- prispevek_id
- tema_id
- autor_id
- datum
- editace
- zprava

A šlo by to doplňovat o nové funkce donekonečna :-) Třeba přístup do určité kategorie jen pro registrované členy, seskupení několika kategorií do větších tematických sekcí, označení příspěvků moderátorem jako spam s tím, že ho vidí jen autor příspěvku ;-) Atp.

Nahlásit jako SPAM
IP: ...–
Python + Django + PostgeSQL = spokojený vývojář :-)
Michall
~ Anonymní uživatel
9 příspěvků
2. 7. 2007   #6
-
0
-

To řazení se myslel podle, kterého sloupce se budou záznamy řadit, protože kdybych
třeba tabulku tema řadil podle tema_id, tak bude pomalejsi než když bych jí řadil podle
kategorie_id (všechny témata pro určitou kategorii budou u sebe a nebude se muset
prohledávat celá tabulka). Jetli tu plácam nesmysly, tak mě omluvte :-D

A vylepšovat funkce taky budu, ale ted potřebuju základ fóra, abych měl co vylepšovat :-)



Nahlásit jako SPAM
IP: ...–
dalaman0
Věrný člen
3. 7. 2007   #7
-
0
-

Myslim ze chyba velmi pouzivana funkcia fora a to moznost odpovdat na nejaky prispevok... takze este treba pridat nejaky stlpec "parent_id", aby si vedelo ktory prispevok na co odpoveda...

Nahlásit jako SPAM
IP: ...–
Lepšie je mať psa na saláme ako salámu pod psom !!!
DeaLer+2
Hero
3. 7. 2007   #8
-
0
-

To dalaman: to by bylo vhodné v případě možnosti stromového zobrazení, jinak je to myslím k ničemu

Nahlásit jako SPAM
IP: ...–
Dušan Janošík | web: djanosik.cz, @djanosik
štěpán
~ Anonymní uživatel
126 příspěvků
9. 7. 2007   #9
-
0
-

dalaman píše:#
# ...treba pridat nejaky stlpec "parent_id", aby si vedelo ktory prispevok na co odpoveda...



Velice zajímavý postřeh ;-) s tím souvisí i možnost optimalizovat počet dotazů do databáze, protože si myslím že 90% programátorů by to napsalo jako rekurzivní volání databáze... když k tomu připočteme absenci 'connection pooling', tak je to samozřejmě velmi pomalé (jako nedostatečné řešení se to ovšem projeví až při větší návštěvnosti).

TIP: Možností je přenést rekurzivní volání databáze na XSL transformaci. Například Oracle umí XML generovat přímo, v MySQL by šlo použít stored proceduru nebo si vytvořit PHP kontroler, který převede data z databázového kurzoru do XML.

Nahlásit jako SPAM
IP: ...–
23. 7. 2007   #10
-
0
-

No já to pravě řeším taky. mám následující tabulku:

id integer primary key auto_increment,
datum date,
cas time,
autor varchar(25),
reakce smallint,
vazba tinyint,
predmet varchar(50),
prispevek text)";

reakce značí číslo kolikrát na tento přispěvek bylo reagovano, vazba znací u každého řádku tabulky na který řádek je to reakce. Priklad:
Jestli reaguji na řádek číslo 10, tak na řádku číslo 10 nastavím hodnotu reakce na 1(pomoci incrementu aby číslo dávalo počet reakcí) a na řádku, kde je vlastní reakce(třeba 30) nastavim vazbu na cislo 10(ID řádku na který je danná reakce). Nejsem si jistý jestli je to dobrý způsob, ale v každým případě vím, že nejsem schopný udělat výpis tak aby byly všechny reakce pěkně za sebou. Chci vytvořit něco podobného jak je na www.formule1.cz. Můžete poradit jestli dělám neco špatně? nebo by jste to udělaly jinak? Zatím mě jde pouze o setřídění příspěvků, rozšiřující pole tabulky dodám a upravým až budu schopny ji setřídit.

Nahlásit jako SPAM
IP: ...–
štěpán
~ Anonymní uživatel
126 příspěvků
24. 7. 2007   #11
-
0
-
Nahlásit jako SPAM
IP: ...–
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, 14 hostů

Podobná vlákna

Forum — založil joskoo

Fórum — založil mmm

Forum — založil Zuben

Fórum — založil Yety

Forum o IM — založil hrach

 

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