Пришла было задача - есть сервера по игре Don't Starve Together и надо реализовать механику вайпов на сервере.
Исходные данные находятся в json-ах (/data
).
- Создаются вайпы на сервере, объявляется пользователям дата начала вайпа.
- Пользователи могут оставлять заявки на перенос вещей.
- У заявок есть статус - подтверждена, отклонена или выполнена.
Надо использовать реляционную СУБД. Выбор пал на MySql.
По логической модели была создана база данных (Разарботка логической модели велась в MySql Workbench).
Схема базы данных находится в /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"
- имя конкретного столбеца в таблице.
В конфиге (db_config.json
) секция source
отвечает за пути к директориям, где находятся данные с вайпами.
"source" : [
"./data/wipe_list_oasis",
"./data/wipe_list_village/wipe_list"
],