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' по сравнению с соображениями обработки, о которых я спрашивал выше.
Пожалуйста, добавьте любые другие соображения, которые я не упомянул.