Hogyan hozzam létre az adatbázist? (MySQL 5.7)
Egy Java programhoz szeretnék létrehozni egy adatbázist.
A program egy szótár lenne. Vannak txt fájlok amiben az angol szavak vannak és tabulátorral elválasztva a jelentésük. Egy angol szóhoz több jelentés is tartozik, de ez minden angol szónál változó. Van amelyikhez csak 1, de van amelyikhez 20-30 jelentés is tartozik.
pl.:
1. accept elfogad
2. accommodate helyreállít hozzáilleszt hozzáalkalmaz
férőhelyet biztosít stb...
A terv az lenne hogy ezeket a sorokat az adatbázisba tölteném fel. A kérdésem az lenne, hogyan lehetne ezt úgy megoldani, hogy nem tudom pontosan hány oszlop kell és azokba az oszlopokba ahol nincs már több jelentés azokat null-ra állítani?
Elképzelés:
+--------+--------+--------+--------+--------+
|--szó---|jelentés|jelentés|--null--|--null--|
|--szó---|jelentés|--null--|--null--|--null--|
|--szó---|jelentés|jelentés|jelentés|jelentés|
+--------+--------+--------+--------+--------+
Kérdés:
- Előre tudod, hogy a hozzáadandó szónak van X jelentése? Így evidens, hogy X oszlopot hozol létre.
- Akkor mit kell tenni, ha legtöbb jelentéssel bírót kitörlik? Törölni kell az oszlopot is?
Az adatbázis tervezés szerint ez nem ideális. Mivel te két dolgot szeretnél egy táblába. Ez 1:N kapcsolatot takar. Azaz 1 szónak N jelentése van.
Tehát így:
Tábla1: Szó (egyedi azonosító, szó)
Tábla2: Jelentés (egyedi azonosító, szó azonosító, jelentés)
Azaz a Szó tábla tartalma:
[1, ablak]
[2, ajtó]
[3, asztal]
Jelentés tábla tartalma:
[1, 2, door]
[2, 3, desk]
[3, 1, window]
[4, 2, tür (németül)]
[4, 1, fenster (németül)]
[1, 2, door]
[2, 3, desk]
[3, 1, window]
[4, 2, tür (németül)]
[5, 1, fenster (németül)]
Így. utolsó 4-es -> 5-s, mivel ID. Így a tudod a szót, és annak a számát, majd kikeresheted az összes azonos számú jelentést
SELECT Szo.szo, Jelentes.jelentes
FROM Szo
INNER JOIN Jelentes
ON Szo.id = Jelentes.so_id
WHERE Szo.szo = 'ablak'
"egyedi azonosító" az "id", az idegen kulcsot ami "szó azonosító" az "szo_id"
1#
Szerintem félre értetted a kérdezőt, csak angol szavakat akar írni, a német nem kell, az egy szót úgy gondolta hogy 1 angol szónak van több magyar jelentése.
#1 vagyok és a #3-nak:
Tudom, hogy nem nyelv a lényeg. Csak asszociáltam a "jelentés" szóval, mert jobb így, mint szárazan beszélnék róla, mindenféle jelentési szimbólumokkal.
Szóval lehet az idegen szó, és annak jelentése, vagy valami más szakmai dolog és annak jelentései. Szóval nem a "nyelv"-en van a hangsúly, hanem a szerkezeten. ;)
Mivel kedves kérdező 1 szóhoz több jelentést is társított egyes esetekben, így a több jelentést más-más nyelvnek megfelelően szimbolizáltam példa kedvéért.
Tehát a nyelvbe nem kell belekötni. De felírhatom máshogy is, ha akkor megnyugszik a lelked, vagy bele-köthetnéked támad. :P
#4
Egyáltalán nem kötekedtem, csak a kérdezőt megzavarhatja esetleg a németes dolog és gondoltam célszerűbb csak angollal szemléltetni a dolgot.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!