mySKI menee yli hilseen

ööös

Tietokannat on kun kouluruotsia: ei mulla mitään sitä vastaan ole mutten kyllä oikeen mitään ymmärräkään vaikka miten kova hinku olis opetella.

Mikä tässä mättää, eiks näiden taulujen pitäisi nyt toimia kimpassa niin että kun yhteen lisätään matskua niin vastaava päivittyy toiseenkin. Vai mitä en ole ymmärtänyt.

Tässä:


CREATE TABLE `TR_vars` (
`word_id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`var` VARCHAR( 50 ) NOT NULL
) ENGINE = MYISAM ;

CREATE TABLE `TR_langs` (
`lang_id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`lang` VARCHAR( 5 ) NOT NULL
) ENGINE = MYISAM

CREATE TABLE `TR_words` (
`lang_id` INT( 5 ) NOT NULL ,
`word_id` INT( 5 ) NOT NULL ,
`var` VARCHAR( 50 ) NULL ,
PRIMARY KEY ( lang_id, word_id ) ,
FOREIGN KEY ( lang_id ) REFERENCES TR_langs ON UPDATE CASCADE ,
FOREIGN KEY ( word_id ) REFERENCES TR_vars ON UPDATE CASCADE
) ENGINE = MYISAM

5

374

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • JEAjajfaa
      • ööös

        Nyt sain futaamaan. Kumma juttu että tuo oletus motör on tuollainen, mutta tulipa taas vähän viisastuttua.

        Vielä tuosta rakenteesta.. mitä varten ehdotit erillistä liitostaulua:
        http://keskustelu.suomi24.fi/show.fcgi?category=108&conference=500000000000005&posting=22000000033477802


        Nyt mulla menee siis allaolevalla tavalla. onko parannusehdotuksia.


        CREATE TABLE `TR_vars` (
        `word_id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        `var` VARCHAR( 50 ) NOT NULL
        ) ENGINE = innodb ;



        CREATE TABLE `TR_langs` (
        `lang_id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        `lang` VARCHAR( 5 ) NOT NULL
        ) ENGINE = innodb


        CREATE TABLE `TR_words` (
        `lang_id` INT( 5 ) NOT NULL ,
        `word_id` INT( 5 ) NOT NULL ,
        `word` VARCHAR( 50 ) NULL ,
        PRIMARY KEY ( lang_id, word_id ) ,
        FOREIGN KEY ( lang_id ) REFERENCES TR_langs ON UPDATE CASCADE ,
        FOREIGN KEY ( word_id ) REFERENCES TR_vars ON UPDATE CASCADE
        ) ENGINE = innodb




        Ja tauluihin on tietenkin syötetty näin:

        TR_vars:

        word_id   |   var
        ---------------------
        1            |   read
        2            |   write


        TR_langs:

        lang_id   |   lang
        ----------------------
        1            |   fi
        2            |   se
        3            |   en


        TR_words:

        lang_id   |   wodr_id   |   word
        ------------------------------------
        1            |      1         |   lue
        1            |      2         |   kirjoita
        2            |      1         |   läs
        2            |      2         |   skriv
        3            |      1         |   read
        3            |      2         |   write


      • JEAjajfaa
        ööös kirjoitti:

        Nyt sain futaamaan. Kumma juttu että tuo oletus motör on tuollainen, mutta tulipa taas vähän viisastuttua.

        Vielä tuosta rakenteesta.. mitä varten ehdotit erillistä liitostaulua:
        http://keskustelu.suomi24.fi/show.fcgi?category=108&conference=500000000000005&posting=22000000033477802


        Nyt mulla menee siis allaolevalla tavalla. onko parannusehdotuksia.


        CREATE TABLE `TR_vars` (
        `word_id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        `var` VARCHAR( 50 ) NOT NULL
        ) ENGINE = innodb ;



        CREATE TABLE `TR_langs` (
        `lang_id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        `lang` VARCHAR( 5 ) NOT NULL
        ) ENGINE = innodb


        CREATE TABLE `TR_words` (
        `lang_id` INT( 5 ) NOT NULL ,
        `word_id` INT( 5 ) NOT NULL ,
        `word` VARCHAR( 50 ) NULL ,
        PRIMARY KEY ( lang_id, word_id ) ,
        FOREIGN KEY ( lang_id ) REFERENCES TR_langs ON UPDATE CASCADE ,
        FOREIGN KEY ( word_id ) REFERENCES TR_vars ON UPDATE CASCADE
        ) ENGINE = innodb




        Ja tauluihin on tietenkin syötetty näin:

        TR_vars:

        word_id   |   var
        ---------------------
        1            |   read
        2            |   write


        TR_langs:

        lang_id   |   lang
        ----------------------
        1            |   fi
        2            |   se
        3            |   en


        TR_words:

        lang_id   |   wodr_id   |   word
        ------------------------------------
        1            |      1         |   lue
        1            |      2         |   kirjoita
        2            |      1         |   läs
        2            |      2         |   skriv
        3            |      1         |   read
        3            |      2         |   write

        Niin tuon oletus moottorin saa valita my.conf:sta. Se miksi wep-hotelleilla on oletuksena usein MyISAM johtuu siitä, että se on nopsempa, kevyempi ... kun ei sisällä tuommosia "turhia" ominaisuuksia. Sekä paljon käytetyissä blog, foorumi jne... scripteissä noita ei käytetä, eikä taulujen luontilauseessa ole mitään mainintaa moottorista.


        Nuo viite-eheys jutut vähän mietityttää. Sillä ei ole hyvä muuttaa word_id ja lang_id tietoja. Siitä aiheutuu erinäisiä ongelmia, tänään 1 = fi mutta huomenna 1 = en ja 3232 = fi, jolloin noiden perusteella ei voida linkittää jne... Näin äkkiseltään en keksi miksi noita pitäisi pystyä muuttamaan?

        "FOREIGN KEY ( lang_id ) REFERENCES TR_langs( lang_id ) ON UPDATE CASCADE" (Korjasin virheen.)

        Tuossa tuo ON UPDATE CASCADE määre tarkoittaa sitä, että kun TR_langs-taulun lang_id-sarakkeessa tapahtuu muutos se päivitetään myös TR_words-tauluun. Siksi ennemmin ilman tuota määrettä jolloin viite-eheys kyllä säilyy, mut noita kohtia ei voi muuttaa jos niillä on jo tietoja.

        Tuo mun esimerkki oli hutasemalla tehty toimivasta monikäyttäjä jutusta, joten mallia siitä voi ottaa kunhan sitä paljon mukauttelee.


        "3 | 1(read) | read
        3 | 2(write) | write"

        Tuo tieto lienee turha koska käännös ja käännettävä on sama.


        Nämä ovat vain minun mielipiteitä, joten toistamieltä saapi olla.


      • höpö.
        JEAjajfaa kirjoitti:

        Niin tuon oletus moottorin saa valita my.conf:sta. Se miksi wep-hotelleilla on oletuksena usein MyISAM johtuu siitä, että se on nopsempa, kevyempi ... kun ei sisällä tuommosia "turhia" ominaisuuksia. Sekä paljon käytetyissä blog, foorumi jne... scripteissä noita ei käytetä, eikä taulujen luontilauseessa ole mitään mainintaa moottorista.


        Nuo viite-eheys jutut vähän mietityttää. Sillä ei ole hyvä muuttaa word_id ja lang_id tietoja. Siitä aiheutuu erinäisiä ongelmia, tänään 1 = fi mutta huomenna 1 = en ja 3232 = fi, jolloin noiden perusteella ei voida linkittää jne... Näin äkkiseltään en keksi miksi noita pitäisi pystyä muuttamaan?

        "FOREIGN KEY ( lang_id ) REFERENCES TR_langs( lang_id ) ON UPDATE CASCADE" (Korjasin virheen.)

        Tuossa tuo ON UPDATE CASCADE määre tarkoittaa sitä, että kun TR_langs-taulun lang_id-sarakkeessa tapahtuu muutos se päivitetään myös TR_words-tauluun. Siksi ennemmin ilman tuota määrettä jolloin viite-eheys kyllä säilyy, mut noita kohtia ei voi muuttaa jos niillä on jo tietoja.

        Tuo mun esimerkki oli hutasemalla tehty toimivasta monikäyttäjä jutusta, joten mallia siitä voi ottaa kunhan sitä paljon mukauttelee.


        "3 | 1(read) | read
        3 | 2(write) | write"

        Tuo tieto lienee turha koska käännös ja käännettävä on sama.


        Nämä ovat vain minun mielipiteitä, joten toistamieltä saapi olla.

        Olen siis tuo sama nöösi jonka kanssa aikaisemmin keskustelit. Olen myös nimimerkki "Suunnittelu alussa" joka kyseli tietokantaisen sivuston suunnittelusta (saamatta yhtään vastausta).
        Anteeksi monet nikit, en aina halua julkisesti tunnustaa tyhmyyttäni :)

        »Se miksi wep-hotelleilla on oletuksena usein MyISAM johtuu..»

        Eikös tuo tarkoita sitä, että normalisoitu monen taulun systeemi on hitaampi?
        Toisaalta tuo ihmetyttää, koska joka helkutin sql-oppaassa puhutaan melken kättelyssä normalisoinnista ja se ei ilmeisesti päde oletuksena mySQL:ssä. Onneksi sen sentään saa pätemään myös siinä.

        »Tuossa tuo ON UPDATE CASCADE määre ..»

        Kiitos korjauksesta.

        »Tuo mun esimerkki oli hutasemalla tehty toimivasta...»

        ei sulla sattuis olemaan ei-hutasemalla tehtyä esimerkkiä? Tarkoitus olisi nimittäin ihan oikeasti suunnitella toteutus ennenkuin teen sen konkreettisesti. Koitan siis kerrankin suunnitella kunnolla ennen toteutusta.

        »"3 | 1(read) | read
        3 | 2(write) | write"
        Tuo tieto lienee turha koska käännös ja käännettävä on sama. »

        Tavallaan kyllä, tuossa tapauksessa. Toisinaan tuo voi olla myös "3 | msg1 | Couldn't create datafile!
        3 | msg2 | Couldn't chmod datafile!"

        tuo sana on siis se, jonka kirjoitan itse koodiin muuttujaksi. esimerkiksi if(ehto) {echo msg1;}


        »Nämä ovat vain minun mielipiteitä, joten toistamieltä saapi olla.»

        Toki toki. Haluankin kuulla eri näkemyksiä ja välillä olla myös eri mieltä.


      • höpö.
        höpö. kirjoitti:

        Olen siis tuo sama nöösi jonka kanssa aikaisemmin keskustelit. Olen myös nimimerkki "Suunnittelu alussa" joka kyseli tietokantaisen sivuston suunnittelusta (saamatta yhtään vastausta).
        Anteeksi monet nikit, en aina halua julkisesti tunnustaa tyhmyyttäni :)

        »Se miksi wep-hotelleilla on oletuksena usein MyISAM johtuu..»

        Eikös tuo tarkoita sitä, että normalisoitu monen taulun systeemi on hitaampi?
        Toisaalta tuo ihmetyttää, koska joka helkutin sql-oppaassa puhutaan melken kättelyssä normalisoinnista ja se ei ilmeisesti päde oletuksena mySQL:ssä. Onneksi sen sentään saa pätemään myös siinä.

        »Tuossa tuo ON UPDATE CASCADE määre ..»

        Kiitos korjauksesta.

        »Tuo mun esimerkki oli hutasemalla tehty toimivasta...»

        ei sulla sattuis olemaan ei-hutasemalla tehtyä esimerkkiä? Tarkoitus olisi nimittäin ihan oikeasti suunnitella toteutus ennenkuin teen sen konkreettisesti. Koitan siis kerrankin suunnitella kunnolla ennen toteutusta.

        »"3 | 1(read) | read
        3 | 2(write) | write"
        Tuo tieto lienee turha koska käännös ja käännettävä on sama. »

        Tavallaan kyllä, tuossa tapauksessa. Toisinaan tuo voi olla myös "3 | msg1 | Couldn't create datafile!
        3 | msg2 | Couldn't chmod datafile!"

        tuo sana on siis se, jonka kirjoitan itse koodiin muuttujaksi. esimerkiksi if(ehto) {echo msg1;}


        »Nämä ovat vain minun mielipiteitä, joten toistamieltä saapi olla.»

        Toki toki. Haluankin kuulla eri näkemyksiä ja välillä olla myös eri mieltä.

        if(ehto) {echo msg1;}

        piti tietysti kirjoittaa:
        if(ehto) {echo $msg1;}


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Klaukkalan onnettomuus 4.4

      Klaukkalassa oli tänään se kolmen nuoren naisen onnettomuus, onko kellään mitään tietoa mitä kävi tai ketä onnettomuudes
      Nurmijärvi
      122
      5867
    2. Yleltä tyrmäävä uutinen

      Ylen uutisen mukaan Raamattu on keksitty n. 2600. Putoaako kristinuskolta pohja kokonaan alta pois? https://yle.fi/a/74
      Luterilaisuus
      495
      1975
    3. Riitta-Liisa ja Toni Roponen: Ero! Riitta-Liisa Roponen kertoo asiasta Instagramissa.

      Riitta-Liisa ja Toni Roponen eroavat. Riitta-Liisa Roponen kertoo asiasta Instagramissa. – Talvi on ollut elämäni synk
      Maailman menoa
      25
      1325
    4. Pakko kertoa mies

      Äitini tietää, että olen ihastunut sinuun. 😳 halusin että hän näkisi sinun kuvan ja pyysin googlaamaan sinua. Kommentti
      Ikävä
      111
      1253
    5. Sinä vain tulit elämääni

      Ja joku tarkoitus sillä on ollut. Näyttämään mitä olen ja kuinka arvokas voisin olla. Se muutti ja käänsi elämäni suunna
      Ikävä
      86
      1113
    6. Millaisia ajatuksia on kaivatusta ja tilanteestanne tänään?

      Kerro omista mietteistäsi tai lähetä terveisiä. Ehkä hän lukee ja lähettää sinulle takaisin omia mietteitään.
      Ikävä
      48
      1015
    7. Miten koskettaisit häntä?

      Miten lähestyisit jos hän olisi lähelläsi nyt..
      Ikävä
      64
      981
    8. Mitä ajattelet

      Kaivattusi uskosta tai onko hän uskossa?
      Ikävä
      65
      921
    9. Tiesitkö mies

      Kuinka paljon mulla oli tunteita sua kohtaan? Jos et tiennyt,olisiko tietäminen vaikuttanut tapahtumiin? Ihmettelen kyll
      Ikävä
      59
      905
    10. Kuulin että Metsa Manille kaavaillaan Maaseudun Sivistysliiton kunniakirjaa ja jotain

      muutakin huominosoitusta. Syystä että on on elvyttänyt huomattavasti videoillaan vanhemman väen englanninkielentaitoja.
      Tuusniemi
      24
      894
    Aihe