Какой подход к хранению данных выбрать?
В общем есть такие сущности:
1) widgets;
2) popups;
3) products;
поля: id, title, handle, sku
4) collections;
поля: id, title, products_count,
products и collections могут быть привязаны к widgets и popups, поиска по продуктам или коллекциям НЕ будет
у меня два варианта как это можно хранить:
1) сделать таблицу resources с json полем data - и туда просто складывать данные о продуктах или коллекциях.
а определять принадлежность к продуктам или коллекциям по полям:
type - product или collection
entity_id - id сущности к которой привязаны ресурсы;
2) использовать подход который еcть в Laravel например
то есть отдельная таблица для коллекций и продуктов и таблицы со связями для них.
_______
я, если честно, склоняюсь к 1ому варианту, но что-то меня останавливает, кто-то когда-то мне вдолбил, что json в базе не очень хорошо, не могу от этого избавиться теперь
Дополнительно:
конечно второй лучше, индексы на разные поля навесить можно будет
но его не будет, мне нужно просто каждый раз полный список товаров получать.
Ответы:
Денормализация реляционной базы данных нужна только для оптимизации(и то могут быть другие варианты) или хранения динамического набора полей.
Оптимизация нужна только тогда, когда есть просадка производительности.
Если нет очевидной нужны делать первый вариант, нужно делать второй.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
При выборе подхода к хранению данных в приложении необходимо учитывать несколько факторов, таких как тип данных, объем информации, скорость доступа, структура данных и многие другие. В зависимости от конкретной задачи можно выбрать один из следующих подходов:
1. Реляционные базы данных (SQL): Этот подход подходит для приложений, где данные имеют жесткую структуру и связи между ними. Реляционные базы данных, такие как MySQL, PostgreSQL, SQLite, обеспечивают надежное хранение данных с возможностью выполнения сложных запросов с использованием SQL.
2. NoSQL базы данных: Этот подход подходит для приложений с большим объемом неструктурированных данных или когда необходима горизонтальная масштабируемость. NoSQL базы данных, такие как MongoDB, Redis, Couchbase, обеспечивают гибкое хранение данных без необходимости определения схемы заранее.
3. Файловая система: В случае, если данные не требуют сложных запросов и могут быть хранены в виде файлов (например, изображения, текстовые файлы), можно использовать файловую систему для хранения данных. Этот подход прост в реализации и подходит для небольших проектов.
$myfile = fopen("data.txt", "w") or die("Unable to open file!");$txt = "John Doe