Jagerente / VRisingAcademySite

VRising Database
https://vrising-academy.info
0 stars 1 forks source link

Таблица просто локаций #53

Closed Bobrokrot closed 2 years ago

Bobrokrot commented 2 years ago

image Таблица локаций, лута и координат. Полностью готова, и есть очень простая функциональность: При выборе предмета, например, Whetstone, найти все локации, в которых фармится Whetstone. Это локации с id 3,5,15,20,21,79. Берётся соответствующий им mapgenie id и генерируется ссылка, где mapgenie id тупо перечисляется через запятую: https://mapgenie.io/v-rising/maps/vardoran?locationIds=178238,178237,178444,178379,178390,178370

Ну и всё, это ссылка просто вставляется в разделе Information у предмета Whetstone.

Единственная трудность состоит в non-item вроде Horse, но пофиг, добавим лошадь как предмет.

Сама таблица на странице locations. https://docs.google.com/spreadsheets/d/1R-Re2Xszgm2UDUvNVrYwZES5eAN9gIJqCEi6FGA4XPo/edit?usp=sharing

aelariane commented 2 years ago

Вопрос. У нас уже есть табличка Locations в базе данных, если мне не изменяет память. Являются ли эти локации тем же самым, или это локации для карты?

Jagerente commented 2 years ago

Вопрос. У нас уже есть табличка Locations в базе данных, если мне не изменяет память. Являются ли эти локации тем же самым, или это локации для карты?

Да. Надо эндпоинты проверить, всё ли возвращается.

aelariane commented 2 years ago

Сделано. Локации были в очень сыром состоянии, можно сказать что они переделаны с нуля. Регионы для юзабилити и для использования в перcпективе вынесены в простую табличку. Это только на уровне ДБ, потому что занимает меньше места на диске и более гибко, в будущем можно будет расширить табличку, если понадятся дополнительные операции с регионами, или они станут самостоятельной сущностью.


@Bobrokrot @Jagerente

Таблица Regions состоит из 2 полей. Id и Name. Добавление в таблицу:

insert into regions(name) values
('Локация 1'),
('Локация 2')

Таблица Locations обновлена и теперь имеет следующий вид: Id | name | description | mapgenieid | regionid

Добавление в таблицу:

insert into locations(name, description, mapgenieid, regionid) values
('Локация 1', 'Описание локации 1', 1111, 1),
('Локация 2', 'Описание локации 2', 2222, 1)

Связь локаций с предметами реализована как многие-ко-многим, организуется через таблицу - посредник itemlocations, которая имеет столбец itemid для предмета и столбец locationid для локации.

Добавление в таблицу: В примере, предмет с id 1 выпадает на локациях с id 1, 5, 7

insert into itemlocations(itemid, locationid) values
(1, 1),
(1, 5),
(1, 7)

@Jagerente Было добавлено 2 эндпоинта:

Список всех локаций    /api/location/list 
Список всех регионов   /api/location/regions

Структуры json

Location:

{
  "id": 1,
  "name": "LocationName"
  "description": "Location Description",
  "mapgenieId": 1111,
  "region": "RegionName",
  "loot": [ 1, 5, 7 ]
}

loot содержит id предметов которые выпадают на этой локации

Region:

{
  "id": 1,
  "name": "RegionName"
}