Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL taulukon arvon generointi kahdesta solusta?

wisekki [23.10.2008 08:33:42]

#

Kuinka voin generoida valmiiseen mysql-taulukkoon yhden lisävarmistuskentän, jonka arvo muodostuisi jo olevista/annetuista arvoista?

Esimerkkinä asiakasrekisteri, jossa on asiakasnumero sekä asiakkaan nimi. Samaan taulukkoon pitäisi saada VARMISTUS -kenttä, jonka arvo muodostuisi asiakasnumerosta + asiakkaan nimestä, eli malliin "1234Malli Asiakas Oy" tms.

asiakasnro, asiakas, varmistus
1234, Malli Asiakas Oy, 1234Malli Asiakas Oy

- AnttiK

Antti Laaksonen [23.10.2008 08:50:52]

#

Kun tiedon pystyy muodostamaan helposti taulun muiden kenttien avulla, sitä ei kannata tallentaa erilliseen kenttään, vaan riittää kirjoittaa kysely näin:

SELECT asiakasnro, asiakas, CONCAT(asiakasnro, asiakas) AS varmistus FROM ...

wisekki [23.10.2008 09:03:29]

#

Omaan tarkoitukseeni mielestäni tarvitsen erillisen varmistus -kentän, koska: jos luon asiakasrekisteriin asiakkaan väliaikaisella asiakasnumerolla ja tälle asiakkaalle tulee tapahtumia, jotka ovat asiakasnro ja asiakasnimi sidonnaisia. Kun asiakas saa "virallisen" asiakasnumeron niin sen vaihduttaessa häviää tapahtumat, koska asiakasnumero on eri. Kuvittelisin, että erillisellä varmistuskentällä asiakasnumeron vaihtuessa, se (mysql/php) voisi etsiä kannasta kaikki ko. varmistuksella olevat kentät ja vaihtaa niiden asiakasnumeron oikeaksi. (sekä päivittää varmistuskentän asiakasnumeron vastaamaan oikeaa, jos asiakasnumero vaihtuu vielä tämänkin jälkeen.)

ajv [23.10.2008 09:08:27]

#

Kyllähän tuossa vähän virittelemisen makua on. Jos asiakasnumeroa ei voi pitää samana sen tyypin muuttuessa väliaikaisesta viralliseksi, niin miksi et voi vain yksinkertaisesti päivittää tapahtumataulun asiakasnumeroita samalla, kun asiakasnumero vaihtuu? Tämän tietokanta tekee jopa itse automaattisesti, jos viite-eheydet ovat kunnossa. Avainsana: foreign keys.

wisekki [23.10.2008 09:27:28]

#

ajv kirjoitti:

..päivittää tapahtumataulun asiakasnumeroita samalla, kun asiakasnumero vaihtuu? Tämän tietokanta tekee jopa itse automaattisesti, jos viite-eheydet ovat kunnossa. Avainsana: foreign keys.

Tuo kuullostaa järkevältä ja tällaista ratkaisua olen miettinyt, mutta toteutus onkin ollut vähän hakusessa. Onnistuuko myös myisam:lla vai tarvitseeko olla innodb tai vastaava käytössä?

ajv [23.10.2008 09:31:23]

#

MyIsam ei tue viite-eheyttä, käytä InnoDB:tä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta