кажется, что это больше работа
для базы данных
Верно, хотя «база данных» не обязательно означает «реляционная база данных». Большинство существующих MUD хранят все данные в памяти и считывают их из плоского файла, сохраненного в формате простого текста. Я не обязательно рекомендую этот маршрут, просто указываю, что традиционная база данных ни в коем случае не нужна. Если вы хотите пойти по реляционному пути, последние версии Python поставляются с sqlite , который представляет собой облегченную встроенную реляционную базу данных с хорошей поддержкой SQL.
Использование реляционных баз данных с вашим кодом может быть неудобным. Любое изменение в классе игровой логики может потребовать параллельного изменения базы данных и изменений в коде, который читает и записывает в базу данных. По этой причине хорошее планирование вам очень поможет, но трудно спланировать хорошую схему базы данных без опыта. По крайней мере сначала спланируйте классы сущностей, а затем создайте схему базы данных вокруг нее. Чтение нормализации базы данных и понимание принципов там помогут.
Вы можете использовать «объектно-реляционный маппер», который может упростить для вас многое из этого. Примеры в Python включают SQLObject , SQLAlchemy и Autumn . Они скрывают много сложностей для вас, но в результате могут скрыть и некоторые важные детали. Я бы рекомендовал использовать базу данных напрямую, пока вы не ознакомитесь с ней, и рассмотрите возможность использования ORM в будущем.
Я думал о хранении словаря
объект в базе данных для каждого
юридическое лицо. Таким образом, я мог бы тогда
просто добавьте новые атрибуты к
база данных на лету без изменений
столбцы базы данных. Это делает
звучит разумно?
К сожалению, нет - если вы это сделаете, вы потеряете 99% возможностей базы данных и эффективно используете ее как прославленное хранилище данных. Однако, если вам не нужны вышеупомянутые возможности базы данных, это правильный маршрут, если вы используете правильный инструмент для работы. Для этой цели стоит обратить внимание на стандартный полка .
Должен ли я хранить всю информацию в
та же база данных, но в разных
таблицы или разные объекты (враги
и комнаты) в разных базах данных.
Одна база данных. Одна таблица в базе данных на тип объекта. Это типичный подход при использовании реляционной базы данных (например, MySQL, SQL Server, SQLite и т. Д.).
Я знаю, что это будет червячная банка,
но каковы некоторые предложения для
хорошая база данных? Является ли MySQL хорошим выбором?
Я бы посоветовал придерживаться sqlite, пока вы не познакомитесь с SQL. В противном случае, MySQL является разумным выбором для бесплатной игровой базы данных, как и PostGreSQL.