@LocalHero

JS в качестве БД?

У меня есть небольшой интернет-магазин. Можно ли использовать JavaScript в качестве базы данных, вместо mysql? Записывать продукты в массив и потом выводить их? Какие могут возникнуть проблемы?
  • Вопрос задан
  • 167 просмотров
Решения вопроса 2
@rPman
javascrip - это инструмент, json - это формат, а база данных - это место хранения, инструмент и формат одновременно.
Т.е. тебе нужно еще понять где ты будешь хранить данные, и вот от сюда и полезут проблемы.

Интернет магазин - значит участвует как минимум браузер (вырожденные случаи вида - магазин в telegram/wechat не рассматриваем), хранить данные браузер умеет только локально, для клиента, а у интернет магазина как минимум есть еще продавец, с которым клиент должен связываться для получения списка и цен на товары в наличии и указаний к пожеланию купить (корзина)... т.е. нужен еще и сервер (варианты с децентрализованной сетью так же не рассматриваем ибо это хардкор не для новичков).

Если твой сервер однопоточный (например если речь идет про javascript то бакэнд серверный можно писать на nodejs, с оговорками про асинхронность) то в принципе можно хранить все данные в файлах, и не сильно заморачиваться с блокировками и транзакциями, а из-за них основные проблемы возникают, зачем люди к готовым базам данным идут.
Если тебя это все еще интересует,
веди работу с базой данных из отдельных функций (например объединив их в класс), по окончанию работу каждой чтобы данные в файлах были в консистентном - правильном состоянии, перезапись делать через временный файл с переименовыванием в оригинальный после всех изменений, это аналог транзакций, это даст гарантии по сохранности данных при смерти внезапной скрипта, например окончилась память или место на диске, само собой проверять это при следующем запуске и давать возможность вручную разрулить. Если сумарный объем базы больше мегабайтов, то не храни все в одном файле, первый уровень разделения - по типам данных, например раздели данные для редких изменений и постоянных - списки товаров и корзина, кстати цены можно так же отдельно хранить, само собой тебе тогда придется идентификаторы заводить и следить за их уникальностью - вот уже сиквенсы пошли (кстати есть алгоритмы uuid где каждый новый гарантированно уникальный без необходимости централизации и чего либо хранения), если же данных совсем много и часто меняются случайные из них то храни каждый объект в своем файле, файловая система справится, но лучше все же освой нормальные БД

Поэтому тебе правильно посоветовали, используй sqlite, минимум усилий на обслуживание и настройку (база данных = файл, никакого сервера и при этом полноценный sql с почти бесплатной миграцией на любую sql базу данных в будущем)
Ответ написан
Комментировать
neuotq
@neuotq
Прокрастинация
Сразу отмечу: писать свой велосипед, кроме как для получения личной практики - не советую. Будет бесконечное число подводных камней, костылей и тп, которые разработчики различных БД уже прошли.
А так, если нужно простое решение советую обратить внимание на SQLite. Там не требуется отдельный сервис/демон у вас должна быть реализация под ваш язык/фреймворк/среду и она будет работать.
Достаточно надёжное решение.
PS отдельно отмечу, возможно, вы имели ввиду совсем другое.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@hacker2001
Если вопрос в том, что можно ли обойтись без своей БД, создав одностраничный интернет-магазин, не требующий хостинга с поддержкой php и тп, то можно использовать Firebase,
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы