MariaDB JOIN pro množinu v poli typu JSON

MariaDB JOIN pro množinu v poli typu JSON
« kdy: 18. 02. 2020, 13:14:51 »
V tabulce "products" jsem pouzil datovy typ JSON pro pole "used_materials" ktere obsahuje id vsech pouzitych materialu

Kód: [Vybrat]
Products:
=================================
product_name(varcharc) | used_materials(json/text)
      Product A                 | [1,2,3]
Kód: [Vybrat]
Materials:
=================================
id | material_name
1  | wood
2  | cotton
3  | concrete

Mohl by mi nekdo poradit jak muzu udelat JOIN a prelozit ID v poli products.used_materials?
Chtel jsem se vyhnout vazebni tabulce mezi "products" a "materials"...
« Poslední změna: 18. 02. 2020, 15:35:15 od Petr Krčmář »


Re:MariaDB JOIN pro mnozinu v poli typu JSON
« Odpověď #1 kdy: 18. 02. 2020, 13:29:26 »
Pokud to chcete udělat rozumně, zaveďte tu vazební tabulku. Databáze s tím počítají, všechny databázové nástroje s takovými vazbami počítají.

Re:MariaDB JOIN pro mnozinu v poli typu JSON
« Odpověď #2 kdy: 18. 02. 2020, 13:32:16 »
ok :)

Re:MariaDB JOIN pro množinu v poli typu JSON
« Odpověď #3 kdy: 19. 02. 2020, 12:27:27 »
...
Mohl by mi nekdo poradit jak muzu udelat JOIN a prelozit ID v poli products.used_materials?
Chtel jsem se vyhnout vazebni tabulce mezi "products" a "materials"...

Mužu se zeptat na důvod, proč se chtít vyhnout relační tabulce?

Re:MariaDB JOIN pro množinu v poli typu JSON
« Odpověď #4 kdy: 19. 02. 2020, 13:21:15 »
Protože mysql/mariadb neumí seznamový datový typ (list), neumí ani naindexovat seznam v jsonu. Takže zcela určitě vazební tabulku.