как хранить списки списков в MYSQL

0

Я хочу сохранить этот список списков, но я не знаю, как его хранить в MySQL

list[x][y] the items in this list contains {li:[{x:x,y:y}] , pos:{x:y}}

list[x][y].li[z].x
list[x][y].li[z].y
list[x][y].pos.x
list[x][y].pos.y

для лучшего сокращения, пожалуйста, посмотрите на это Изображение 174551

: Изображение 174551

это правильно? поэтому это означает, что у меня будет только 2 таблицы?

  • 0
    Что ты пробовал до сих пор?
  • 0
    не могли бы вы проверить мою концептуальную схему? @Glains
Показать ещё 1 комментарий
Теги:

1 ответ

2
Лучший ответ

Вы должны использовать отдельную таблицу с подписями, в которой есть столбец parent_id, а затем третья таблица с фактическими элементами списка низкоуровневых списков.

Запрос для этого будет выглядеть так:

SELECT li.x, li.y, sl.id
FROM li_items li  
JOIN sub_lists sl on li.list_id = sl.id
JOIN lists l on sl.parent_id = l.id;

Процесс преобразования строк результатов зависит от того, используете ли вы обычный ORM или простой клиент mysql.

Вы также можете сохранить его как JSON, как предположил удаленный ответ, но вы не сможете запрашивать определенные элементы, не выбирая и не анализируя все списки. Вы также можете использовать столбец MySQL JSON, но в вашем случае наличие отдельных таблиц кажется лучше

  • 1
    Наличие основных таблиц является правильным подходом. Хранение JSON противоречит лучшим практикам проектирования баз данных. Смотрите здесь для нормализации БД: studytonight.com/dbms/database-normalization.php

Ещё вопросы

Сообщество Overcoder
Наверх
Меню