Я знаю, что sql не может сохранять массивы (поправьте меня, если я ошибаюсь) .
почему?
Я знаю, что это глупый вопрос, но
Массивы - это только структурированные данные. Почему sql не может сохранить это?
Могу ли я переписать мою базу данных mysql или загрузить аддон для sql, чтобы я мог сохранять массивы?
заранее спасибо
Если вы хотите использовать массив, вы можете использовать NOSQL
Sql может хранить сериализованные данные, например, Json или XML, вы можете использовать это для сохранения массивов






Чтобы ответить на свой вопрос, я сначала хочу поблагодарить за комментарии
СПАСИБО!
Вернемся к вопросу: обычный sql не может сохранять массивы и не хочет сохранять сохранение из-за проблем с нормализация.
вы можете сохранять массивы другим способом:
Таблица SQL похожа на массив. Свяжите новую таблицу как массив. Создайте таблицу вручную или, если массив может измениться, с помощью Code. В sql нет необходимости в массивах
Если вам нужно это сделать или вы хотите это сделать, вы можете использовать Nosql или PostgreSql или сохранить данные с помощью JSON, Oracle и XML.
Системы управления реляционными базами данных (СУБД), такие как MySQL, SQL Server, Oracle и PostgreSQL, обычно хранят данные в таблицах. Это очень хороший способ хранить связанные данные.
Допустим, есть три объекта: клиенты, заказы и продукты, а заказы содержат несколько продуктов. Отсюда четыре таблицы:
Мы предоставляем индексы (то есть деревья поиска), чтобы легко находить заказы клиента или продукты в заказе. Теперь предположим, что мы хотим узнать, сколько заказов было сделано для продукта 123:
select count(distinct order_no)
from order_details
where product_no = 123;
СУБД быстро найдет записи order_detail для продукта, потому что поиск по индексу похож на поиск по фамилии в телефонной книге (двоичный поиск). А дальше это просто подсчет. Таким образом, считываются только несколько записей, и весь запрос выполняется очень быстро.
Теперь то же самое с массивами. Что-то вроде:
products(product_no, name, price)
customers
(
customer_no,
name,
array of orders
(
order_no,
date,
array of products
(
product_no,
amount
)
)
)
Что ж, детали заказа теперь скрыты внутри элемента заказа, который сам находится внутри объекта клиента. Чтобы получить количество заказов для продукта 123, кажется, единственный подход - прочитать записи клиентов все, просмотреть заказы все и посмотреть, содержат ли они продукт. Это может занять очень много времени. Более того, без ограничений внешнего ключа для отношений между сущностями массивы могут содержать номера продуктов, которых даже не существует.
Что ж, могут быть способы типа данных индексного массива и могут быть способы гарантировать для них согласованность данных, но реляционный подход с таблицами доказал, что он очень хорошо решает эти проблемы. Поэтому мы бы избегали массивов и вместо этого строили бы наши отношения с таблицами. Для этого и создана реляционная база данных.
(Сказав это, массивы могут пригодиться время от времени, например, в рекурсивном запросе, когда вы хотите запомнить, какие записи уже были посещены, но такие случаи редки.)
В мире SQL вы должны нормализовать свои данные. Массив не является атомарным (вы, вероятно, захотите обратиться к конкретному элементу массива, а не к массиву в целом). В любом случае PostgresSQL / Oracle позволяют хранить массивы.