Какой тип техники следует использовать для достижения наилучшей общей скорости при сравнении состояний для разрешений / авторизаций? - PullRequest
0 голосов
/ 26 февраля 2020

MVC5 vb. net SQL

Приложение будет использовать разрешения для авторизации, а не роли. Разрешения будут оцениваться для базового c CRUD (создание, чтение, обновление, удаление). Разрешения для каждого пользователя будут храниться в базе данных SQL. Таким образом, для работы с CRUD необходимо хранить, извлекать и обрабатывать 4 дискретных данных.

Поскольку разрешения проверяются почти для всех вызываемых методов, разрешения будут часто проверяться с использованием фильтра атрибутов, и это будет Кажется, общая скорость должна быть направлена ​​на это. Я прошу помощи, учитывая все возможные последствия, начиная с того, как данные хранятся и извлекаются в базе данных SQL до общей стоимости в зависимости от используемой техники.

Следующие методы приходят на ум для хранения данные разрешения: Boolean, Bitwise, Characters in a string. Я предполагаю, что bitwise будет самым быстрым, затем Boolean, а Characters in a string будет дорогостоящим. Но иногда мы не понимаем других последствий того, что кажется простым решением.

Итак, вот вопросы, которые я задаю себе, но у меня нет опыта, чтобы знать ответы:

Побит. Все 4 данных CRUD кодируются в один элемент данных, поэтому операции с базой данных будут казаться самыми быстрыми. Я предполагаю, что bitwise оценка также самая быстрая, но, возможно, нет. Есть ли скрытые затраты на bitwise сравнений? Каков наилучший тип данных для использования bitwise?

Boolean. Boolean потребует 4 элемента данных, но, похоже, это не будет большим штрафом для операций с базой данных , Boolean Сравнения кажутся самыми быстрыми для сравнения, потому что они истинны / ложны по сравнению с необходимостью маски при использовании bitwise.

Символы в строке. Это будет кажется худшим из возможных вариантов, но я спрашиваю только потому, что могут возникнуть проблемы, о которых я не знаю, когда дело доходит до выбора символа из строки и его тестирования. Хранение будет 4 символа в поле, но я не знаю, стоит ли беспокоиться об операциях с базой данных. Тестирование будет проверять индексированное местоположение в строке, но означает ли это, что это будет большой штраф?

Хотя я предполагаю, что для лучшей скорости мне нужно загружать разрешения пользователя в память, пока они регистрируются в, это может показаться 'wa sh' по сравнению с соображениями обработки, о которых я спрашивал выше.

Пожалуйста, добавьте любые другие соображения, которые я не упомянул.

...