Здравствуйте.
--
Нужен совет. Как лучше (безопаснее), хранить информацию. Я умею записывать информацию в файл и в БД.
Запись осуществляется кодом php
Вероятность числа записей - 500 000
Есть несколько вкладок со странами, в каждой вкладке страны вложены названия банков и платёжных систем, у каждой платёжной системы (банка) - свои данные для заполнения.
Результат, нужно формировать n-вкладок стран, с n-видом платёжек, у которой n-полей для заполнения.
Каркас: вкладки стран, вкладки платёжек - костомизированные и меняющиеся.
Заполняемость: разная (в зависимости от потребностей и страны), некоторые поля обязательны.
То есть структура гибкая и настраиваемая.
-----------------
Возможно было бы лучше хранить это в БД, но сколько будет весить такая таблица? Уточню, что я в курсе хранения данных в виде массива для преобразования в json файл. Что делать, если таблица будет повреждена, или взломана? Чтение отдельной строки каждым отдельным пользователем в секунду может быть любым.
Так вот, если скрипт будет формировать массив, и записывать в индивидуальный json файл, будет, скажем так 500 000 пепезапысываемых и костомизированных json файлов, которые будет читать пользователь или функции в момент транзакции. Если навернётся БД, данные платёжных систем уйдут в закат, и будут серьёзные проблемы для восстановления. Можно сделать бекап в MySQL (а если нельзя?)
В случае с json файлом, который переписывается пользователь (каждый свой, по отдельности), подгружается (читается), быстрее, чем из БД.
Скорее всего, за год, файл с платёжными данными будет отредактироват 1-2 раза.
Что надёжнее, что безопаснее? 500 000 записей в БД против 500 000 файлов json.
Конечно СУБД. Но ты можешь совместить файлы и БД, взяв документоориентированное решение, например mongodb. Или использовать функционал работы с json в реляционных БД, например JSONb в PostgreSQL.
Плюсы: готовые и отработанные инфраструктурные решения. к минусам можно отнести то, что надо уметь"готовить" выбранное решение.
Я задал такой вопрос ещё и потому, что осмыслил, вот - сайт
Он же состоит из файлов, у кого-то из .py
у кого-то из .html или .php
У кого-то и вовсе .js или .ask
Так вот, если есть возможность редактировать эти файлы, переписывать, не касаясь БД, нагрузка на сайт уменьшается. Ведь так? Данные тянуться не через БД, а на прямую с файла, который отображён в браузере. Скажем так, если я смог отредактировать целую страницу, а текст, картинки и прочий контент хранится в php массиве, или в json файле в чём может быть опасность, уязвимость? Это лень у программистов писать файл в файл, или из-за того что в инете есть инфа как работать с файлами и БД??? ISP Manager вот к примеру или Spruto не хранят ничего в БД, все файлы обрабатываются и сохраняются как есть. Мне просто очень любопытно.
Если по простому, то СУБД лучше.
БД можно масштабировать, реплицировать, версионировать, нормально бэкапить, уже есть разграничение доступа к данным средствами СУБД. По данным в БД можно строить аналитику.
Хочу уточнить, я не отказываюсь от БД. Я знаю об этих возможностях. А так же о интервалах бекапа. Ситуация, - бекап делается к примеру, каждый день, в 15:00 (но не факт), и c 15:00 первого числа, до 15:00 второго числа происходит какой-то сбой. Информация нигде не сохранилась, как восстановить?
Игорь Васильев, ну от таких частностей Вас ничто не убережет. Время бэкапа надо выбирать, базы надо реплицировать, использовать распределенные кэши. Проектировать систему с учетом Ваших особенностей. Если Вам нужна сверх-надежность данных, то без перезакладывания (в виде реплицирования и кэшей) Вам не обойтись.
В этом проекте давно используется БД
Вопрос был в надёжности и безопасности конкретно этой информации.
Думаю, разумно будет хранить такую инфу в двух состояниях, как json-файл, и как запись в БД, чтобы именно эта информация имела возможность на восстановление, если где-то что-то случится. Скорее всего вопрос страховки, подготовка к неожиданностям
Предлагать учится человеку, который просто решил посоветоваться с программистами, узнать мнения экспертов, это как минимум странно и не этично. Раз человек пытается разобраться, значит он уже обучается, не мастерит самоделки, а пользуется советами профи, - это уже показатель того, что спросивший хочет быть лучше. Нельзя всё знать и помнить. Да и вы наверняка помните не информацию а место, где её искать, и случись коллапс с инетом, вы будете беспомощьны. Если ошибаюсь, прошу прощения и респектую.
Игорь Васильев, Чтобы правильно задать вопрос нужно знать как минимум половину ответа.
А для того чтобы знать, нужно учиться.
А насчет "нельзя все знать и помнить..."
Как раз с точностью до наоборот.
Ценятся те у кого "ручки помнят".
Чем больше программист умеет, тем меньше нужно искать "как делать", сосредотачиваясь на "что делать" :-)