Hogy készítenétek el egy gyakorikerdesek szerű oldalt?
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 !
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.
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.
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 .
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)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!