Zadejte hledaný výraz...

Seskupení dat v databázi + automatické doplnění chybějících

Ondřej Záruba
verified
rating uzivatele
22. 5. 2012 11:26:29
Zdravím, řeším teď drobet složitější problém a nevim si sním rady.
Kamarád mě prosil jestli bych mu nenapsal script na opravu databáze, protože se mu pokazilo vložení dat a databáze není úplná. Z údajů, které mám se dá zbytek automaticky vygenerovat jen nevím jak to ideálně vyřešit.
Mám tuto tabulku: http://2i.cz/43e74963b0
Problém je v tom že správně by měla vypadat takto: http://2i.cz/25812f05d6
(na pořadí nezáleží, jen aby příslušné id patřili ke správným protějškům)
Potřebuji nějak automaticky vygenerovat vztahy a doplnit tabulku. Ručně by to nebyl problém, ale nedaří se mi vymyslet jak to přepracovat do scriptu. (ručně není možné dělat, dat je hromada)
Potřeboval bych alespon nakopnout z jakého konce to mám chytit, zbytek už si napíši sám
Mohl by někdo poradit?
Předem díky
22. 5. 2012 11:26:29
https://webtrh.cz/diskuse/seskupeni-dat-v-databazi-automaticke-doplneni-chybejicich/#reply767254
naniccz
verified
rating uzivatele
(3 hodnocení)
22. 5. 2012 11:35:36
Zadání není vůbec jasné, ale hezky jsem si pohrál (v MySQL)
(v Oracle by to díky WITH a ROWNUM bylo mnohem hezčí)
22. 5. 2012 11:35:36
https://webtrh.cz/diskuse/seskupeni-dat-v-databazi-automaticke-doplneni-chybejicich/#reply767253
Ondřej Záruba
verified
rating uzivatele
22. 5. 2012 12:05:22
Omlouvám se, nevěděl jsem jak to napsal... možná to bude teď srozumitelnější:
databáze představuje databázi slovíček,
Je k dispozici seznam EN, CZ a slovíček. S tím že jak bývá zbykem jedno EN slovíčko má více CZ výrazů a naopak... Tudíž když máme
EN tabulku:
id | text
1. | find
2. | found
CZ tabulku:
1. | najít
2. | našel
3. | nalezl
A tabulka co je výše je sločuje tudíž je třeba mít:¨
id_en | id_cz
1 | 1
1 | 2
1 | 3
2 | 1
2 | 2
2 | 3
Akorát že databáze která je k dispozici teď obsahuje data jen jako:
id_en | id_cz
1 | 1
1 | 3
2 | 1
2 | 2
což je neúplně a já musím automaticky doplnit:
id_en | id_cz
1 | 2
2 | 3
s tím, že to by mělo jít automaticky dohledat vždy.. podle idecek
22. 5. 2012 12:05:22
https://webtrh.cz/diskuse/seskupeni-dat-v-databazi-automaticke-doplneni-chybejicich/#reply767252
naniccz
verified
rating uzivatele
(3 hodnocení)
22. 5. 2012 12:24:55
Podle jakého vzroce by měl program poznat, že slovíčko A je anglicky B? (Píšete, že podle idecek,) Protože byla DB plněna sekvenčně? Pak záleží, jaký je "systém" v té chybě.
protože se mu pokazilo vložení dat
jestli by nebylo jednodušší vložení dat udělat znovu a nepokaženě
---------- Post added 22.5.2012 at 12:26 ----------
Ještě dodám, že když píšešte
s tím, že to by mělo jít automaticky dohledat vždy.. podle idecek
tak pak není potřeba nic opravovat, protože z toho vyplývá, že v DB ty informace jsou (jinak by nešly dohledat).
22. 5. 2012 12:24:55
https://webtrh.cz/diskuse/seskupeni-dat-v-databazi-automaticke-doplneni-chybejicich/#reply767251
Ondřej Záruba
verified
rating uzivatele
22. 5. 2012 12:42:12
k tomu aby platilo že, pro id_en 1 je id_cz 2 bych musel dělat něco takového:
Vezmu id_en = 1 a vidím že pro id_cz je také 1, takže když vytáhnu všechny id které odpovídají id_cz 1 => dostanu id_en 1,2 a když pro id_en 2 platí id_cz 2 tak automaticky musí i id_en 1 platit id_cz 2.
Což je dost nepraktické dohledávání, ideální by bylo projít celou databázi a doplnit co tam chybí abych pak data z db jenom vypisovat...
22. 5. 2012 12:42:12
https://webtrh.cz/diskuse/seskupeni-dat-v-databazi-automaticke-doplneni-chybejicich/#reply767250
martinzsa
verified
rating uzivatele
(1 hodnocení)
22. 5. 2012 13:26:27
ako uz napisal naniccz nieje jednoznacne dane podla coho maju byt jednotlive hodnoty spojene... to ze ty pozres do db a je ti jasne co s cim je fajn ale db to nevie
pouzijem ten tvoj priklad a troska ho rozsirim:
EN tabulka:
id | text
1. | find
2. | found
3. | car
4. | dog
CZ tabulka:
1. | najít
2. | našel
3. | nalezl
4. | auto
5. | pes
podla akej logiky skript ma vediet ze maju existovat iba spojenia
id_en | id_cz
3 | 4
4 | 5
a nie aj
3 | 1
3 | 2
3 | 3
4 | 1
4 | 2
4 | 3
22. 5. 2012 13:26:27
https://webtrh.cz/diskuse/seskupeni-dat-v-databazi-automaticke-doplneni-chybejicich/#reply767249
Ondřej Záruba
verified
rating uzivatele
22. 5. 2012 14:52:46
Ty data jsou ručně pospojovat i když se dívám jenom na výpis ID v sjednocovací tabulce... Takhle ručně generovat chybu nejde. Data jsou uložena chybně ale ta chyba je opravitelná. Když se kouknete na obrázky v prvním postu tak z toho prvního (tak jak to v db vypadá) se ten 2 obrázek dá ručně poskládat i když nevim o jaká slovíčka jde...
Půjdu od spodu.. Vidím že id_en = 3 a cz_id = 3, pak vidím že id_en 2 = 3 a id_cz = 3 to zanemá že pokud id_en = 2 odpovídá id_cz = 1 (2 řádek) a id_cz odpovídá také id_en = 1 (první řádek) tak automaticky i id_en = 3 bude odpovídat id_cz = 3
a stejně jdou doplnit i všechny ostatní
22. 5. 2012 14:52:46
https://webtrh.cz/diskuse/seskupeni-dat-v-databazi-automaticke-doplneni-chybejicich/#reply767248
naniccz
verified
rating uzivatele
(3 hodnocení)
22. 5. 2012 15:35:14
Vezmu id_en = 1 a vidím že pro id_cz je také 1, takže když vytáhnu všechny id které odpovídají id_cz 1 => dostanu id_en 1,2 a když pro id_en 2 platí id_cz 2 tak automaticky musí i id_en 1 platit id_cz 2.
Vezmu STAMP a vidím že je to OTISK, takže když vytáhnu všechny id které odpovídají OTISK => dostanu STAMP, IMPRINT a když pro IMPRINT je TIRÁŽ tak automaticky musí i STAMP být TIRÁŽ.
Your logic is invalid.
22. 5. 2012 15:35:14
https://webtrh.cz/diskuse/seskupeni-dat-v-databazi-automaticke-doplneni-chybejicich/#reply767247
Pro odpověď se přihlašte.
Přihlásit