Davidaa_WoW, такое часто бывает нужно. Например это нужно при связи многие ко многим. Обычно
это решается добавлением отдельной таблицы, которая хранит эти связи.
Davidaa_WoW, с точки зрения реализации вы можете делать как вам удобно. Но с точки зрения проектирования структуры БД атрибут "активный заказ" не является атрибутом сущности "пользователь".
То что вы реализовали называется денормализация, она применяется например в витринах данных для ускорения построения отчётов. Но если у вас курс по проектированию БД, то скорее всего от вас требуется спроектировать таблицы так, чтобы они соответствовали нормальным формам и именно поэтому ваш преподаватель не принял ваше решение.
Davidaa_WoW, вам привели контр пример. У пользователя может быть брольше одного активного заказа и сохранить нормально список активных заказов в одном поле не выйдет.
Если совсем нет времени переделывать, то можно было бы добавить флаг "активный заказ" в таблицу заказов и получать список таких заказов простым запросом по идентификатору пользователя и значению флага.
Anyuta300699, судя по коду должно, но есть нюанс. Все дублирующиеся буквы будут считаться одной буквой и перестановка a(1) t a(2) будет идентично a(2) t a(1) и в выходной set будет только один экземпляр ata.
Похоже у вас рекусия.
close_after_fetching вызывается сама из себя.
bot.gateway.removeCommand({'function': close_after_fetching, 'params': {'guild_id': guild_id}})
Роман Юрьевич Ипатьев, тут очень много нюансов.
Не все индексы полезны, а иногда даже вредны. Если требуется про сканировать 30% большой таблицы никакой индекс не поможет, он только накладных расходов добавит. Нужно учитывать селективносить и статистику.
Ну и джойнить маленькие таблицы гораздо выгоднее чем большие, т.к. например меньше количество операций с диском, которые очень дорого стоят, а загнать всю большую таблицу в память не выйдет, а маленькую запросто.
Тут классический подход - разделяй и властвуй.
Я так рассуждаю:
Есть n вершин и каждая из них связана с остальными - полносвязный граф.
Чтобы образовался цикл нужно минимум 3 вершины.
Значит для n вершин есть вот такое количество неповторяющихся циклов:
C(n,3)+C(n,4)+..+C(n,n), где C(n, k) - это количество сочетаний из n по k.
В данном случае сочетания по вершинам.
Т.е. для n = 5 например получаем
С(5,3) = 10
С(5,4) = 5
C(5,5) = 1
Общее = 10+5+1 = 16 циклов, при этом 5^5= 3125, т.е. намного больше.
Нужно заменить PLAYER_ANGLE на player. angle