Skip to content

ArtemSoftware2006/Wipes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wipes

Пришла было задача - есть сервера по игре Don't Starve Together и надо реализовать механику вайпов на сервере. Исходные данные находятся в json-ах (/data).

Подробнее о задаче

  1. Создаются вайпы на сервере, объявляется пользователям дата начала вайпа.
  2. Пользователи могут оставлять заявки на перенос вещей.
  3. У заявок есть статус - подтверждена, отклонена или выполнена.

Надо использовать реляционную СУБД. Выбор пал на MySql.

Разработка схемы базы данных

По логической модели была создана база данных (Разарботка логической модели велась в MySql Workbench).

alt text

Схема базы данных находится в /schema

Как данные импортировать будем?

Вот незадача - все данные находятся в json-нах (в директории /data можно посмотреть исходные данные) Решено было импорт производить средствами python (v3.11). Написали скрипт импорта (файл import_data.py).

Как скриптом пользоваться

В скрипте есть конфиг db_config.json. В этом конфиге есть все основные сущности:

  • server
  • player
  • thing
  • request
  • thing_in_request
  • discord_account
  • request_status
  • wipe

Разберу пример настройки одной из сущностей. Возьмём player:

"player": {
    "name" : "Players",
    "columns" : {
        "id" : "id_player",
        "discord_id" : "id_discord_accounts",
        "dst_nickname" : "dst_nickname"
    }
},
  • "name" : "Players" - имя отношения в базе данных.
  • "columns" : {...} - в этой секции находится описание столбцов в таблице.
  • "id" : "id_player" - имя конкретного столбеца в таблице.

А что такое source?

В конфиге (db_config.json) секция source отвечает за пути к директориям, где находятся данные с вайпами.

"source" : [
        "./data/wipe_list_oasis",
        "./data/wipe_list_village/wipe_list"
    ],

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages