Начинаю пилить свой проект, пока на стадии обдумывания концепции и тех.деталей.
Вот сейчас застрял на том, что не знаю, как лучше хранить данные приложения.
Предполагается, что будут несколько видов сущностей, у которой может быть переменное количество заданных атрибутов . Можно заполнить 10 штук, а можно 70, но у каждого вида сущностей заранее известен набор атрибутов. Причем будет несколько видов этих сущностей- некоторые атрибуты будут пересекаться, но большая часть- отличаться. После технической реализации атрибуты могут меняться, но это скорее в порядке исключения. Предполагаемое число записей- 100-300k строк. Загвоздка в том, что хотелось бы реализовать ревизии материалов, так что количество строк будет постоянно расти. Чтение будет преобладать над (пере)записью. Количество запросов прогнозировать сложно, тем более еще не задумывался над кешированием.
Самое простое решение- сделать несколько таблиц в
MySQL- в одной общие атрибуты и на каждый вид сущность по уникальной таблице с уникальными атрибутами. Минус этого подхода- таблица с 50 столбцами не выглядит хорошей идеей :)
Второе, что пришло мне в голову-
MongoDB, но с ним опыта нету, да и после прочтения
некоторых материалов я засомневался в целесообразности выбора.
Ну и третий вариант- использовать
PostgreSQL с его типом данных JSON.