ÁLGU-TIETOKANTATAULUT SQL Versiolle 3.2 Ville Tikkaoja 1.4.2008 ------------------------------------------------------------------------- Tauluissa lekseemi_id -attribuutti viittaa lekseemi-taulun riviin. Taulujen perässä oleva taulu-id kertoo millä id:llä ko. tauluun viitataan tallennus ja lahdetieto -taulujen taulu_id -attribuutissa. CREATE TABLE lekseemi ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, kieli_id INT UNSIGNED NOT NULL, PRIMARY KEY (id), INDEX kieli_id_index (kieli_id)); CREATE TABLE kieli ( id INT NOT NULL AUTO_INCREMENT, jarjestys INT NOT NULL, nimi VARCHAR(100) CHARACTER SET utf8 NOT NULL, lyhenne VARCHAR(20) CHARACTER SET utf8 NOT NULL, kieliryhma INT NOT NULL, valintaryhma INT NOT NULL, PRIMARY KEY(id)); CREATE TABLE kielivalintaryhma ( id INT NOT NULL, jarjestys INT NOT NULL, nimi VARCHAR(100) CHARACTER SET utf8 NOT NULL, kielijoukko INT NOT NULL, PRIMARY KEY(id)); CREATE TABLE tarkenne ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, lekseemi_id INT UNSIGNED NOT NULL, tarkenne VARCHAR(80) CHARACTER SET utf8, varmennettu INT, PRIMARY KEY (id)); taulu-id: 6 CREATE TABLE ilmentyma ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, lekseemi_id INT UNSIGNED NOT NULL, ortognro INT NOT NULL, ilmentyma VARCHAR(100) CHARACTER SET utf8, ilmentyma_p VARCHAR(100) CHARACTER SET utf8, homonyymi_id INT, numero VARCHAR(20) CHARACTER SET utf8, varmennettu INT, aakk INT UNSIGNED, PRIMARY KEY (id), INDEX lid_index (lekseemi_id)); taulu-id: 1 CREATE TABLE merkitys ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, lekseemi_id INT UNSIGNED NOT NULL, ortognro INT NOT NULL, kieli VARCHAR(50) NOT NULL, merkitys TEXT CHARACTER SET utf8 NOT NULL, varmennettu INT, PRIMARY KEY (id), INDEX lid_index (lekseemi_id)); taulu-id: 2 CREATE TABLE suhde ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, lekseemi1_id INT UNSIGNED NOT NULL, suhdetyyppi INT NOT NULL, lekseemi2_id INT UNSIGNED NOT NULL, varmuusaste INT NOT NULL, implisiittinen INT NOT NULL, varmennettu INT, PRIMARY KEY (id), INDEX st_index (suhdetyyppi)); taulu-id: 3 Suhdetyypit: 1 = vastinesuhde 2 = johtosuhde 3 = lainasuhde 5 = vertaussuhde 6 = kielteinen vastinesuhde 7 = kielteinen johtosuhde 8 = kieleinen lainasuhde 10 = kielteinen vertaussuhde CREATE TABLE muutieto ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, lekseemi_id INT UNSIGNED NOT NULL, tieto VARCHAR(255) CHARACTER SET utf8, varmennettu INT, PRIMARY KEY (id)); taulu-id: 4 CREATE TABLE lahdetieto ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, taulu INT NOT NULL, taulu_id INT UNSIGNED NOT NULL, lahde INT UNSIGNED NOT NULL, sivunro VARCHAR(20), PRIMARY KEY (id), INDEX t_index (taulu,taulu_id)); taulu-attribuutti: kertoo mihin tauluun ko. tieto liittyy, ks. alla tauluindeksit taulu_id-attribuutti: viittaa em. taulun riviin CREATE TABLE lahde ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, tekija_lyhenne VARCHAR(80) CHARACTER SET utf8 NOT NULL, ilmestymisvuosi VARCHAR(20) CHARACTER SET utf8 NOT NULL, teoslyhenne VARCHAR(30) CHARACTER SET utf8 NOT NULL, bibliotieto INT, kayttajalahde INT, PRIMARY KEY (id)); tekija_lyhenne: sukunimi + etunimen 1. kirjain / esim. sanakirjan lyhenne taulu-id: 5 CREATE TABLE kommentti ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, lekseemi_id INT UNSIGNED NOT NULL, kommentoija VARCHAR(50) NOT NULL, kayttaja_id INT UNSIGNED NOT NULL, aika DATETIME NOT NULL, teksti TEXT CHARACTER SET utf8, PRIMARY KEY (id)); CREATE TABLE tallennus ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, taulu INT NOT NULL, taulu_id INT UNSIGNED NOT NULL, tallentaja INT UNSIGNED NOT NULL, aika DATETIME NOT NULL, PRIMARY KEY (id), INDEX t_index (taulu,taulu_id)); taulu-attribuutti: kertoo mihin tauluun ko. tieto liittyy, ks. alla tauluindeksit taulu_id-attribuutti: viittaa em. taulun riviin CREATE TABLE kayttaja ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, nimi VARCHAR(50), tunnus VARCHAR(30) NOT NULL, salasana VARCHAR(36) NOT NULL, edellogin DATETIME, syottoja INT UNSIGNED DEFAULT 0, muutoksia INT UNSIGNED DEFAULT 0, varmennuksia INT UNSIGNED DEFAULT 0, attr_syottaja INT, attr_varmentaja INT, attr_korjaaja INT, attr_yllapitaja INT, attr_eikaytossa INT, kattr_kaikkilahteet INT, lahdelyhenne VARCHAR(30), lahteet VARCHAR(80), PRIMARY KEY (id)); CREATE TABLE kayttaja_stat ( kayttaja INT NOT NULL, vuosi INT NOT NULL, syottoja INT UNSIGNED DEFAULT 0, muutoksia INT UNSIGNED DEFAULT 0, varmennuksia INT UNSIGNED DEFAULT 0, PRIMARY KEY (kayttaja,vuosi)); CREATE TABLE bibliografia ( id INT NOT NULL AUTO_INCREMENT, tyyppi INT, vuosiluku VARCHAR(20) CHARACTER SET utf8, teoksen_nimi VARCHAR(255) CHARACTER SET utf8, ilmestymispaikka VARCHAR(50) CHARACTER SET utf8, niteiden_maara VARCHAR(10) CHARACTER SET utf8, sarjalyhenne VARCHAR(20) CHARACTER SET utf8, sarjanide VARCHAR(30) CHARACTER SET utf8, sarjasivut VARCHAR(10) CHARACTER SET utf8, sijainti VARCHAR(255) CHARACTER SET utf8, lisatieto TEXT CHARACTER SET utf8, kommentti TEXT CHARACTER SET utf8, PRIMARY KEY(id)); taulu-id: 7 CREATE TABLE kirjoittaja ( id INT NOT NULL AUTO_INCREMENT, nimi VARCHAR(100) CHARACTER SET utf8, variantti1 VARCHAR(100) CHARACTER SET utf8, variantti2 VARCHAR(100) CHARACTER SET utf8, variantti3 VARCHAR(100) CHARACTER SET utf8, variantti4 VARCHAR(100) CHARACTER SET utf8, PRIMARY KEY (id)); CREATE TABLE kirjoittajaliitos ( id INT NOT NULL AUTO_INCREMENT, kirjoittaja_id INT, bibliografia_id INT, monesnimi INT, PRIMARY KEY(id)); CREATE TABLE sanue ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, kieli_id INT UNSIGNED NOT NULL, eduslekseemi INT UNSIGNED NOT NULL, PRIMARY KEY (id)); CREATE TABLE sanueliitos ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, lekseemi_id INT UNSIGNED NOT NULL, sanue_id INT UNSIGNED NOT NULL, PRIMARY KEY (id)); CREATE TABLE sanue_tarkenne ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, sanue_id INT UNSIGNED NOT NULL, tarkenne VARCHAR(80) CHARACTER SET utf8, varmennettu INT, PRIMARY KEY (id)); taulu-id: 12 CREATE TABLE sanue_ilmentyma ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, sanue_id INT UNSIGNED NOT NULL, ilmentyma VARCHAR(255) CHARACTER SET utf8, varmennettu INT, PRIMARY KEY (id)); taulu-id: 8 CREATE TABLE sanue_merkitys ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, sanue_id INT UNSIGNED NOT NULL, kieli VARCHAR(50) NOT NULL, merkitys TEXT CHARACTER SET utf8, toimittaja INT, varmennettu INT, PRIMARY KEY (id)); taulu-id: 9 CREATE TABLE sanue_suhde ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, sanue1_id INT UNSIGNED NOT NULL, suhdetyyppi INT NOT NULL, sanue2_id INT UNSIGNED NOT NULL, lainakieli INT NOT NULL DEFAULT 0, varmuusaste INT NOT NULL, implisiittinen INT NOT NULL, varmennettu INT, PRIMARY KEY (id), INDEX st_index (suhdetyyppi)); taulu-id: 10 CREATE TABLE sanue_muutieto ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, sanue_id INT UNSIGNED NOT NULL, tieto VARCHAR(255) CHARACTER SET utf8, varmennettu INT, PRIMARY KEY (id)); taulu-id: 11 CREATE TABLE lainalaajennus ( suhde_id INT UNSIGNED NOT NULL, sanue_id INT UNSIGNED NOT NULL, PRIMARY KEY(suhde_id,sanue_id)); -- (c) Kotimaisten kielten tutkimuskeskus