Kezdőoldal » Számítástechnika » Weblapkészítés » Hogy készítenétek el egy...

Hogy készítenétek el egy gyakorikerdesek szerű oldalt?

Figyelt kérdés

Egy olyan oldalról lenne szó ahol a felhasználók maguk lőnek fel témákat és lehet alá kommentelni . Hogy kezelnétek az adatbázist ?

Mindegyikhez külön tábla ?

Vagy id-t adni a témáknak és aszerint rendezni a commenteket ?

Még nem csináltam ilyet ,hogy lehet ezt jól megcsinálni?

Az ötleteket előre is köszönöm !


2017. jan. 5. 12:51
 1/5 anonim ***** válasza:

Miért kéne mindegyiknek külön tábla?

Egy táblában a kategóriák és alkategóriák.

Egy táblában a kommentek és a témák is, hisz a kettő végső soron ugyanaz. A különbség a kettő közt, hogy egy kommentnek egy téma a szülője, a témának pedig egy kategória.

Ehhez jön még egy "posttree" tábla, amiben a komment-szülő viszonyok vannak tárolva, de ez csak akkor kell, ha egy kommentnek több szülője is lehet, egyébként elfér a kommentek táblában.

Egy tábla az accountoknak/usereknek. Egy a jogosultságoknak/szerepköröknek (admin, moderator, user, stb.).

Ha van privát üzenet küldési lehetőség, annak is kell egy tábla.

Nálam külön tábla van "usersettings" néven, ami a felhasználók beállításait tárolja. Ez csak azért van, mert egy accounthoz több user is tartozhat.

És ha vannak figyelt kulcsszavak, az is mehet egy külön táblába. Meg egyéb dolgok, pl. a felhasználók utolsó valahány bejelentkezési dátuma IP címmel, stb.

2017. jan. 5. 13:07
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:
64%

A mindegyikhez külön tábla szerintem overkill. :P

Én azt csinálnám, h lenne két tábla. Az egyik tartalmazná a kérdést (vagy fő topikot) és annak az összes szükséged infóját (közzététel dátuma, kérdés, leírás, stb.). A másik táblában meg a válaszokat tartanám, amiknek szintén megvan minden fontos infója, plusz egy oszlop, amiben annak a topiknak az ID-jét tároljuk, amire válaszként érkezett. És akkor egy ilyen SQL querry-vel másolnád ki: SELECT * FROM valaszok WHERE refer_to=:question_id


És ha több lépcsős válaszokat akarsz csinálni (pl, hogy a válaszra lehessen válaszolni), akkor az "idézés" a legjobb mód. Azaz beraksz idézéskor egy jelzést, ami mutatja, hogy ott idézet van (pl: <ref>eredeti_valasz_idja?</ref>) és ezt kiírás előtt php-val replaceeled.

2017. jan. 5. 13:07
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
0%
Erre a célra ott a Reddit.
2017. jan. 5. 13:14
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:

Köszönöm szépen . Úgy fogom megcsinálni ahogy a 2. írta .


offtopic

3.-A reddit már megcsinálta. Jobb ha meg se tanulok ilyen oldalt készíteni . Ahogy én észrevettem nincs olyan hogy lefoglalt ötlet ennek legérdekesebb példája az hogy egy instagram nevű faékegyszerű oldal valamiért befutott a különböző ezerfunkciós közösségi hálók ellenére .

2017. jan. 5. 13:51
 5/5 anonim ***** válasza:

A legnagyobb gondot majd a hozzáaszólások mennyisége fogja jelenteni.

Pl. itt a gyakorin is van 8 millió kérdés (ez se kevés),

és ha mindegyikhez csak átlagosan 10 van akkor már 80 millió szép nagy tábla...

Ekkor táblákban kizárólag ID -val lehet gyorsan adatott lekérni!

Viszont a téma - hozzászólás össze kapcsolása, nem árt ha külön van egy szimpla 2 oszlopos táblában aminek indexelt értéke a TopicID.

Így ha egy témához ki akarod keresni mely hozzászólások tartoznak, előbb össze tudod szedni a MSGID -kat ebből.

Ha a hozzászólások táblájában van hogy hova tartozik, tehát a TopicID, még indexelve is van, kicsit lassabb úgy össze szedni.

(pár százezerig nem tűnik fel, inkább milliós tábláknál)

2017. jan. 5. 14:19
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!