Какой подход к хранению данных выбрать?

Ссылка скопирована
1 ответ

В общем есть такие сущности:
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 в базе не очень хорошо, не могу от этого избавиться теперь

Дополнительно:

конечно второй лучше, индексы на разные поля навесить можно будет

  • Виктор, лучше, если по этим полям поиск нужен будет

    но его не будет, мне нужно просто каждый раз полный список товаров получать.

  • JeanPaulBelmondo, если сейчас поиск не планируется, это не значит, что его не захотят сделать через какое-то время.
  • JeanPaulBelmondo, еще constraint можно разные вешать, например добавлять обязательные поля, чего не сделать с json в базе.
  • Не надо использовать json для данных которые легко структурируются. И вам правильно вдолбили
  • Ответы:

    Денормализация реляционной базы данных нужна только для оптимизации(и то могут быть другие варианты) или хранения динамического набора полей.
    Оптимизация нужна только тогда, когда есть просадка производительности.

    Если нет очевидной нужны делать первый вариант, нужно делать второй.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Ольга Сеть Ответ

    При выборе подхода к хранению данных в приложении необходимо учитывать несколько факторов, таких как тип данных, объем информации, скорость доступа, структура данных и многие другие. В зависимости от конкретной задачи можно выбрать один из следующих подходов:

    1. Реляционные базы данных (SQL): Этот подход подходит для приложений, где данные имеют жесткую структуру и связи между ними. Реляционные базы данных, такие как MySQL, PostgreSQL, SQLite, обеспечивают надежное хранение данных с возможностью выполнения сложных запросов с использованием SQL.

    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDB";
     
    $conn = new mysqli($servername, $username, $password, $dbname);
     
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    2. NoSQL базы данных: Этот подход подходит для приложений с большим объемом неструктурированных данных или когда необходима горизонтальная масштабируемость. NoSQL базы данных, такие как MongoDB, Redis, Couchbase, обеспечивают гибкое хранение данных без необходимости определения схемы заранее.

    $client = new MongoDB\Client("mongodb://localhost:27017");
    $collection = $client->myDB->myCollection;

    3. Файловая система: В случае, если данные не требуют сложных запросов и могут быть хранены в виде файлов (например, изображения, текстовые файлы), можно использовать файловую систему для хранения данных. Этот подход прост в реализации и подходит для небольших проектов.

    $myfile = fopen("data.txt", "w") or die("Unable to open file!");
    $txt = "John Doe

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно