Millainen nettisivuston rakenne on järkevä (montako tiedostoa vs sullotaan paljon samoihin tiedostoihin), kun tarvitaan
- sisäänkirjautuminen
- useampi eri yhteyksissä tapahtuva haku kannasta
- useammassa eri yhteydessä tapahtuva tallennus kantaan
- sessiot, luonnollisesti
Javalla olio-ohjelmointia jonkin verran harrastaneena olen tottunut sijoittamaan tietokantakerroksen omakseen. Onko mahdollinen tässä, eli yksi php tiedosto, jossa tietokantakerros? Onnistuuko tällöin muista erillisistä tiedostoista käyttää tietokantaa (kerran avattua yhteyttä)?
Kantapään kautta opittua on, ettei näemmä PDO ja vanhempi sql syntaksi sovi yhteen.
Ongelma on, kun nollatasolta lähtee näitä opettelemaan, niin esimerkkikoodit ovat mitä milloinkin. Niiden yhtenäistäminen on täyttä tuskaa, ongelmasta toiseen siirtymistä. Eli jos jollain on vielä vinkkejä, mistä isompia kokonaisuuksia voi opiskella, otan ilolla vastaan.
Tässä on varsin yksinkertaisen ja yhtenäisellä tyylillä kirjoitetun nettisarjiksen hallintaan tarkoitetun systeemin lähdekoodi:
http://merri.net/netsaha/netsaha_2010-03-28_beta2.zip
Siinä on joitakin hassuja tempauksia, esim. käyttäjän kirjautuminen voidaan hyväksyä minkä tahansa sivun kautta johtuen kevytrakenteisesta käyttäjäskriptistä. Ei mikään maailman upein käyttäjän tunnistautumistoteutus, mutta riittävä pieneen tarkoitukseen.
Lisäksi tietoturvasta on pidetty huolta mm. keskittämällä tietyt lomakkeiden lukemiset validoivien funktioiden taakse.
Vaikkei tuo mitään suurta suosiota ole muutoin saanut, niin ehkä se tämmöiseen opetuskäyttöön soveltuu. Pitäisi vain lisätä kommenttien määrää tuntuvasti?
Mielenkiintoista.
Tuossa ei kuitenkaan käytetä tietokantaa. Muutoin kyllä tuossa on paljonkin varmasti ammennettavaa.
Joo, varsinaista tietokantaa ei käytetä. CSV-tiedostoja niiden sijasta. Tallennettavaa tietoa on niin vähän ja tietoa tallennetaan niin harvoin, että CSV-tiedostot ovat tietokantaa järkevämpi vaihtoehto. Toisaalta myös tietokannan voisi eritellä samaan tapaan kuin CSV:n käsittely on eritelty. Tosin olisin voinut kirjoittaa käsittelyt geneerisempinä kuin mitä ne on nyt kirjoitettu, mutta noin pienessä projektissa se ei vielä kannattanut.
Mm. phpBB3:sta löytyy varsin kattava tietokannan erittely. phpBB3 kun tukee todella montaa eri tietokantasoftaa, niin välikerros on sitten toteutettu varsin jykevällä tavalla. Melkeinpä joutuu opettelemaan oman kielensä, jotta sitä osaa käyttää.
Aihe on jo aika vanha, joten et voi enää vastata siihen.