C, C++, Java, PHP, Ruby...

Pravila foruma

U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
Odgovori

Re: MySQL problem

10 lip 2020, 19:48

shrike je napisao/la:CSV fajl se može direktno importati u mysql, uopće ti ne treba neki program. https://dev.mysql.com/doc/refman/8.0/en/load-data.html


Znaimljivo :thmb-up Ali treba mi i tagovi ilti one-to-many relationship? Može li se i to?

Re: MySQL problem

10 lip 2020, 20:12

Kakvi tagovi?

Re: MySQL problem

10 lip 2020, 21:04

shrike je napisao/la:Kakvi tagovi?


Npr. u smislu da imaš blog article a article ima tagove:

naziv1|tag1,tag2,tag3,tag4|datum|etc
naziv2|tag1,tag2,tag3,tag4|datum|etc

Da li ja mogu importat i automatski dobiti složene "tag" sql relacije?
Pretpostavljam da je isto neko skriptanje potrebno?

Re: MySQL problem

10 lip 2020, 21:21

i dalje nisam siguran kaj je to, ali ovako ne izgleda kao validni CSV fajl. Tj, nije, jer je u CSV-u separator konzistentan, obično "," ili tab, a ti odjednom imaš | i , kao separatora i nejasno je jel to sve isto, da li bi to bili stupci sve ili što. Ai recimo ako ti je | separator, onda to možeš importati u tablicu u kojoj je prvi stupac naziv, drugi stupac tag1,2,3,4, pa treći stupac datum itd. U tom slučaju bi trebao reći da je separator |, umjesto ",", ali to se može.

Re: MySQL problem

10 lip 2020, 23:35

Pa sam napisao js (node) skriptu koja ga
konvertira u sql. U pola svega sam imao problema sa case-insensitive
string (jer channels table je one-to-many sql relacija). Pa sam našao
negdje na stackoverflowu da postavim char set u utf8_bin...


Meni zvuči ovo kao da radiš nešto loše u smislu dizajna baze podataka.

Re: MySQL problem

11 lip 2020, 06:43

iweb je napisao/la:
Pa sam napisao js (node) skriptu koja ga
konvertira u sql. U pola svega sam imao problema sa case-insensitive
string (jer channels table je one-to-many sql relacija). Pa sam našao
negdje na stackoverflowu da postavim char set u utf8_bin...


Meni zvuči ovo kao da radiš nešto loše u smislu dizajna baze podataka.


Objasni? Pa imaš artikl (article) i imaš tagove.
; je pod-separator. Provjerio sam, ovako izgleda csv fajl i to je jedan artikl:

id|url|title|body|datum|tag1;tag2;tag3
id|url|title|body|datum|tag1;tag2;tag3

Kako bi ti to napravio osim sa one-to-many?

Re: MySQL problem

11 lip 2020, 15:26

a mislim, postoji niz načina kako to napraviti i svi uglavnom ovise o tome što ti je potrebno, ali ako tagove ne spremaš kao stringove (neku sličnu strukturu), za pretpostaviti je da radiš relaciju jer želiš lagano moći mijenjati npr naziv taga, bez da to moraš raditi s velikom složenošću.

ako je takva nekakva ideja, onda bi imao npr ovakvu strukturu:

Kod:
tags(id int auto_increment, name varchar(n), ...)
posts(id int auto_increment, url varchar(n), title varchar(n), body longtext, postedon date, ...)
tagged(tag_id int, post_id int) # ovo je relacija


onda bi sve tagove nekog posta s njihovim nazivima dohvaćao s npr
Kod:
SELECT tags.name FROM tags WHERE tag_id in (SELECT tag_id FROM tagged WHERE post_id = [tvoj post id])


dodavao bi tag na post sa
Kod:
INSERT INTO tagged VALUES ([tvoj tag_id], [tvoj post_id])


a pretraživao dostupne tagove sa
Kod:
SELECT FROM tags WHERE name LIKE '%query%'


dodavao novi tag sa
Kod:
INSERT INTO tags VALUES (...)


jedini onda kontekst u kojem ti je potrebno pretraživati tagove je kad gledaš postoji li taj tag već, ali uz dobro postavljen charset ne bi trebalo biti problema s tim.

nije mi bilo jasno odakle implikacija da one-to-many relacija povlači da imaš problema sa case sensitivityjem i još uvijek to ne vidim. ipak, relacije s puno mijenjanja atributa u postojećim članovima relacije ne čine mi se kao pametna ideja.

edit:
ali čekaj? kako su tagovi one-to-many relacija?

imaš n tagova. svaki od tih n tagova je povezan s m članaka. svaki članak ima k tagova. to je many-to-many, što ne?

Re: MySQL problem

11 lip 2020, 18:15

iweb je napisao/la:nije mi bilo jasno odakle implikacija da one-to-many relacija povlači
da imaš problema sa case sensitivityjem i još uvijek to ne vidim. ipak,
relacije s puno mijenjanja atributa u postojećim članovima relacije ne
čine mi se kao pametna ideja.


Pa kažeš:
iweb je napisao/la:Meni zvuči ovo kao da radiš nešto loše u smislu dizajna baze podataka.


iweb je napisao/la:edit:
ali čekaj? kako su tagovi one-to-many relacija?
imaš n tagova. svaki od tih n tagova je povezan s m članaka. svaki članak ima k tagova. to je many-to-many, što ne?



Da sry upravu si. Mislio sam many-to-many.
Ali nema veze ono što mi je trebalo je:

Kod:
ALTER DATABASE
    database_name
    CHARACTER SET = utf8mb4
    COLLATE = utf8mb4_unicode_ci;

Re: MySQL problem

11 lip 2020, 20:33

pa da.

ne uzimajući u obzir činjenicu da je ovo many-to-many relacija, ne vidim smisao u ovome što mi se čini da tvrdiš da one-to-many relacije povlače probleme s case sensitivityjem, ali možda se i krivo razumijemo. nije ni prebitno :)

inače, dobar materijal na našem jeziku je Mangerov udžbenik Baze podataka.

Re: MySQL problem

11 lip 2020, 22:36

Meni se uistinu čini da sva 3 pričamo o 3 različite stvari :D
Odgovori