Stranica: 2/3.
Re: MySQL problem
Postano: 10 lip 2020, 19:48
Postao/la damir
Znaimljivo

Ali treba mi i tagovi ilti one-to-many relationship? Može li se i to?
Re: MySQL problem
Postano: 10 lip 2020, 20:12
Postao/la shrike
Kakvi tagovi?
Re: MySQL problem
Postano: 10 lip 2020, 21:04
Postao/la damir
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
Postano: 10 lip 2020, 21:21
Postao/la shrike
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
Postano: 10 lip 2020, 23:35
Postao/la iweb
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
Postano: 11 lip 2020, 06:43
Postao/la damir
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
Postano: 11 lip 2020, 15:26
Postao/la iweb
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: Označi sve
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: Označi sve
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: Označi sve
INSERT INTO tagged VALUES ([tvoj tag_id], [tvoj post_id])
a pretraživao dostupne tagove sa
Kod: Označi sve
SELECT FROM tags WHERE name LIKE '%query%'
dodavao novi tag sa
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
Postano: 11 lip 2020, 18:15
Postao/la damir
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: Označi sve
ALTER DATABASE
database_name
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
Re: MySQL problem
Postano: 11 lip 2020, 20:33
Postao/la iweb
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
Postano: 11 lip 2020, 22:36
Postao/la shrike
Meni se uistinu čini da sva 3 pričamo o 3 različite stvari
