Olisikohan mahdollista mysql-taulun kentän sisälle luoda toinen taulu mysql-jutuilla vai laitanko sinne 'kapuloita' ja tulostettaessa erottelen explodella 'kapuloittem' kohdalta arrayksi?
Sen tapanen olis tarve...
Tauluja ei voi olla sisäkkäin, mutta voit tehdä uuden erillisen taulun.
Tuokin on ollut harkinnassa....
Aattelin vaan,kun kyseessä on tapaus, että joutuisi luomaan käyttäjälle oman taulun.
Suunnittelen pikkuhiljaa uutta foorumia ja siihen liittyvien yksityisviestien rakennelmaa. Muutaman viestin takia ei tarvii omaa taulua. Arvelin, että yksityisviestejä voisi laittaa niin paljon, kuin text-kentässä on tilaa. Voi tuon viestirajoituksen tehdä monella muullakin tavalla...
En ole koodannut muuta kuin asennusohjelmaa, tuo rakenne vielä on avoin.
Toinen taulu ehdottomasti, ja toiseen tauluun vain riveihin käyttäjän yksilöivä id.
Eli yhdellä käyttäjällä voi olla tuossa taulussa useampikin rivi (= viesti).
Esimerkki viittaustaulusta:
kayttaja_id | viesti_id |
1 | 1 |
1 | 2 |
2 | 3 |
3 | 4 |
Esimerkissä käyttäjä 1 on lähettänyt viestit 1 ja 2, käyttäjä 2 viestin 3 ja käyttäjä 3 viestin 4. Yksityisviestien tapauksessa tarvitset tietysti lisäksi vielä tiedon vastaanottajasta.
ID:t viittaavat käyttäjä
-tauluun ja viesti
-tauluun. Aina kun uusi viesti lähetetään, lähettäjän ID ja viestin ID lisätään tuohon viittaustauluun. Nämä voidaan hakukyselyissä yhdistää monin keinoin, useimmiten JOINilla.
Kiitos!
Tuo yhteinen taulu on ihan hyvä.
Kuormittuuko homma liikaa, jos tuossa samassa taulussa muissa kentissä on myös muut tiedot eli viesti + viestin lähettäjä + viestin päiväys?
Vai tottumuksestako neuvot laittamaan ne eri tauluihin? ;)
Ei kuormitu.
Itse tekisin juuri mainitsemallasi tavalla, joskin jos tulee paljon erityylisiä viestejä (foorumiviestit, yksityisviestit, muistilaput), voi kaikki taulusi alkaa näyttämään enemmänkin toistensa kopioilta.
Samankaltaisen toiminnallisuuden kopiointi useaan eri kohtaan eri nimillä on turhaa työtä ja vaikeuttaa ylläpitoa. Itse tallentaisin kaikki erilaiset viestit samaan tauluun ja hoitaisin yksityisyyden ym. asiat toisella tasolla, esimerkiksi luomalla tarpeen mukaan uusia keskusteluja (alueita, aiheita tms.), joille vain tietyillä henkilöillä on pääsy.
Metabolix kirjoitti:
...
Hiukan jotakin tuonkaltaista suunnittelin. Yksityisviesteistä ei välttämättä tulisi ilmoitusta sähköpostiin, se ominaisuus olisi vapaasti valittavista asetuksista. Kirjautuneelle käyttäjälle näytettäisiin jokin "Saapuneet viestit(1)" jos on lukemattomia yksityisviestejä.
Toisaalta jos halutaan useampi kuin kaksi keskustelijaa yksityisviesteissä, niin tarvitaan hiukan erilaisempi... oikea nimi olisi Ryhmä-viestit.
Pekka Mansikka kirjoitti:
niin tarvitaan hiukan erilaisempi... Ryhmä-viestit.
Entä jos erillisessä taulussa listattaisiin kaikki käyttäjät, joilla on oikeus lukea tiettyä keskustelua? Jos rivejä ei olisi yhtään, kyseessä olisi julkinen keskustelu. Muussa tapauksessa vain määrätyt käyttäjät saisivat lukea viestejä. Itse olen vast'ikään toteuttanut hieman samantapaisen systeemin, ja toistaiseksi kokemus on ollut hyvä.
Sama järjestelmä taipuu siis keskusteluun (ei käyttäjiä eli avoin kaikille), muistilistaan (yksi käyttäjä), yksityisviesteihin (kaksi käyttäjää) ja ryhmäkeskusteluihin (monta käyttäjää) sekä esimerkiksi ylläpitäjien omaan keskustelualueeseen (monta käyttäjää, joita tarvittaessa lisätään ja poistetaan).
Metabolix kirjoitti:
...
Perusidea ei ole hullumpi. Kyllä tuo ryhmäviesti-ominaisuus olisi kans hyvä olla foorumissa. Tuo muistilista-homma on minulle uusi ajatus, riittäkö sille käyttäjiä? :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.