PDA

Просмотр полной версии : как лучше вывести данные


root@localhost:~#
29.06.2022, 17:15
есть функция которая выводит инвентарь персонажа, и 2 варианта реализации функции

в первом случае имена предметов берутся из второй таблицы (подключается через LEFT JOIN), во втором варианте все данные берутся из одной таблицы, а id предметов сопоставляются с именами из большого массива с предметами (около 10к итемов).

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

Desquire
29.06.2022, 19:30
Зависит от того, от куда у тебя данньіе в массиве, и как тьі делаешь джоин.

В принципе, база бьістрее чем пхп.

Но если сильно много джоинов, то запрос будет тяжельім, и может подлагивать сервер базьі.

Если говорить про тут, я бьі сделал через лефт джоин. как будто меньше костьілей.

Но если єто айтемьі предметов, то она разве не из патча?)

Elrik
29.06.2022, 20:35
есть функция которая выводит инвентарь персонажа, и 2 варианта реализации функции
в первом случае имена предметов берутся из второй таблицы (подключается через LEFT JOIN), во втором варианте все данные берутся из одной таблицы, а id предметов сопоставляются с именами из большого массива с предметами (около 10к итемов).
вопрос какой вариант будет более правильным?


Лучше всего там где есть индексы. Если 1 таблица, и можно создать грамотные индексы, то флаг в руки ). А ещё лучше дай пример запроса

root@localhost:~#
29.06.2022, 21:01
Зависит от того, от куда у тебя данньіе в массиве, и как тьі делаешь джоин.
В принципе, база бьістрее чем пхп.
Но если сильно много джоинов, то запрос будет тяжельім, и может подлагивать сервер базьі.

Если говорить про тут, я бьі сделал через лефт джоин. как будто меньше костьілей.

Но если єто айтемьі предметов, то она разве не из патча?)


массив в отдельном файле)

прям вот так и выглядит

Elrik
29.06.2022, 21:02
массив в отдельном файле)
прям вот так и выглядит


Нет условия в запросе какие должны бытЬ?

Desquire
30.06.2022, 11:49
если выводить из бд то нужен еще +1 LEFT JOIN


Но тут у тебя вьівод чаров, а не предметов)

root@localhost:~#
30.06.2022, 17:11
Но тут у тебя вьівод чаров, а не предметов)


ой ё, перегрелся)

SQL:



$
sql
=
"SELECT `items`.`owner_id`, `items`.`item_type`, `items`.`amount`, `items`.`location`, `items`.`enchant`, `items_names`.`item_name` FROM `items` LEFT JOIN `items_names` ON `items`.`item_type` = `items_names`.`id` WHERE `owner_id` = '$objid' AND `location` = '$type'"
;

Desquire
30.06.2022, 18:12
Если индексьі есть, вообще проблем бьіть не должно.

Мьісли в слух:

А если кто-то зайдет на сайт и зажмет ф5?)

root@localhost:~#
30.06.2022, 18:22
Если индексьі есть, вообще проблем бьіть не должно.

Мьісли в слух:
А если кто-то зайдет на сайт и зажмет ф5?)


я думал об этом, мне еще в целом непонятно как можно защититься от флуда, по сути такие данные не кешируются, ибо они должны быть в личном кабинете и динамически обновляться