У меня есть структура базы данных, похожая на следующую:
User
----
Id
Name
UserCustomerLink
----------------
UserId
CustomerId
Customer
--------
Id
Name
Address
-------
Id
CustomerId
Address1
Invoice
-------
Id
AddressId
Number
Это сайт MVP asp.net, поэтому пользователь может перейти по адресу, подобному http://localhost/invoice/details/1
, который вернет счет с идентификаторомиз 1.
Пользователь должен войти в систему и быть назначен клиенту (через таблицу UserCustomerLink), к которому относится счет (по адресу).
Мой вопрос: где следуетЯ проверяю, может ли пользователь просматривать счет-фактуру?
Должен ли я проверить, существует ли счет-фактура, и пользователь может просмотреть его, а затем вернуть его из базы данных или получить элемент из базы данных, а затем проверить?
Меня беспокоит количество запросов к базе данных, которые будут выполняться для поиска этой информации, и я ищу эффективный метод.Это упрощенное представление структуры и некоторых дочерних свойств более чем на 3.
В заметке сайта я сначала использую код Entity Framework, так что если есть способ создать отображение, включающее CustomerИдентификатор объекта Invoice может обойти эту проблему.