@hesy

Mysql или как еще можно хранить данные пользователей?

Добрый день!

Планируется простая браузерная игра (текстовая, прим. wekings.ru/), естественно нужно хранить логины/пароли/статистику, но как лучше это сделать?

Есть выбор между Mysql (знание нулевое), Json и INI*.
  • Mysql - кажется самый подходящий вариант, но никогда им не пользовался, очень отпугивает своими таблицами и запросами.
  • Json - нравится структура файла (просто и понятно), но с записью в файл плохо.
  • INI - элегантно и просто. Думаю для каждого пользователя сделать свой файл INI с данными (число пользователей около ~50к), но не знаю, как будет реагировать файл на одновременные запросы разных клиентов (запишутся ли данные/считаются ли)
Пример структуры ini файла
[user]
id = 1
username = admin
password = qwerty123

[stats]
health = 100
energy = 1000

//etc


Крайне не хочу использовать Mysql, может посоветуете какие-либо другие варианты?
*Знаю, что идея с ини файлами не совсем удачная, я просто дилетант в этом деле.
  • Вопрос задан
  • 214 просмотров
Решения вопроса 1
@hesy Автор вопроса
Почесав репу и погуглив, нашел простой и лаконичный (на мой взгляд) вариант, это все таки SQLite

Здесь все просто и понятно написано как добавить/обновить/удалить данные.
Так же, для себя нашел еще редактор БД под названием SQLiteStudio

Может быть у кого-то возникнет когда-нибудь подобный вопрос.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
lamer350
@lamer350
กำลังสูงสุด
json/ini - это все равно что все данные на заборе написать, никакой безопасности
Ответ написан
Radjah
@Radjah
> Крайне не хочу использовать Mysql, может посоветуете какие-либо другие варианты?
Не изобретай велосипед. В базах данных нет ничего страшного.
Ответ написан
Комментировать
Softovick
@Softovick
программист, администратор
Для начала вы определитесь, что и в каком объеме будет хранить база данных (хотя бы примерно)? Какие требования у вас к БД, к ее производительности, к ее возможностям, наличию возможности удаленного доступа и т.п.?

Если вам там нравится JSON - посмотрите в сторону NoSQL баз данных. Например, MongoDB. Схема хранения данных схожая, гибкости больше и это СУБД, отсюда всякие ништяки типа отдельного доступа к БД из других приложений, встроенные средства работы с данными, сортировкой, индексами и много чем еще, типа архитектурно заложенные средства безопасности, транзакций и т.п. и т.д. и др. В очень грубом приближении можно сказать, что это MySQL (нет конечно же), но подход к хранению и обработке данных совсем другой.

Есть также несколько реализаций встраиваемых БД, которые не требуют установки на сервер отдельного программного слоя в виде СУБД и работают на уровне самого приложения (неважно, сайт в том числе). На разных языках программирования есть и универсальные и уникальные реализации. Например, NeDB для node.js, LiteDB для .NET, LevelDB, PouchDB и т.п.

Если у вас будет немного данных, всю базу можно и хранить в файлах, как вы описываете INI или JSON. Разве что выбор INI не то, чтобы неудачный, просто почти в любом веб-ориентированном языке программирования есть уже средства по работе с JSON. В том числе и реализации встроенных баз данных на базе JSON. Успешных реализаций встроенных баз данных из INI я не встречал еще... Тем более, что в конечном итоге вам наверняка придется обмениваться данными между сервером и клиентом и для этого обычно используют именно JSON.

Хранение большого количества мелких файлов (в вашем понимании INI) - может стать в определенный момент проблемой на уровне операций с диском, также все сильно зависит от файловой системы и ее настроек на сервере. 50 тыс это дофига на самом деле. Я встречал проблемы с более 30к файлов в одной папке, решить это потом "на горячую" будет проблематично, а главное что не всегда будет очевидна проблема.
Ответ написан
Комментировать
sim3x
@sim3x
Пароль
никто
и
никогда
не
хранит
в
открытом
виде

Почитатйе оф доки от пхп, как нужно поступать с паролями

Оперирование с файлами, как с хранилищем, на порядок сложнее чем любое взаимодействие с СУБД
СУБД как раз и являются тем механизмом, что позволяет новичкам не потерять данные
Если вам плевать на сохранность, то тогда используйте файлы
Ответ написан
Комментировать
@Yan-s
очень отпугивает своими таблицами и запросами.

Работать с файлами будет сложнее. Намного.

Mysql. Таблицы - очень просто и интуитивно понятно. Запросы - человеческий синтаксис, очень удобно оперировать данными. Высокая надежность, огромное количество информации, сообщество.

Файлы - вообще не вариант. Вот несколько популярных вариантов которые можно рассматривать в качестве хранилища данных: mysql, sqlite, postgres, redis, mongodb.

Рекомендую выбрать из первых двух. Вероятно sqlite будет проще для вас.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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