Я работаю над веб-приложением, разработанным в ASP.Net с использованием C #. Наряду с другой функцией, есть функция, которая позволяет пользователям добавлять различные элементы в свой личный список. Таблицы базы данных, относящиеся к вышеупомянутым функциям:
-------------------------
| Item |
-------------------------
| ItemId (Primary Key) |
| . . . & other attribs |
-------------------------
---------------------------
|List |
---------------------------
|ListId (Primary Key) |
|. . . and other attribs |
---------------------------
Поскольку между двумя вышеупомянутыми таблицами существует отношение многие ко многим (т.е. один элемент добавляется во многие списки, а один список содержит много элементов), поэтому я создаю для этого третью таблицу
---------------------------------
|ItemList |
---------------------------------
|ItemId (Foreign Key) |
|ListId (Foreign Key) |
|. . . and other Attributes |
---------------------------------
Теперь мне нужно отслеживать, сколько раз определенный элемент добавляется в список. Для этого у меня есть два возможных варианта
- Я добавляю новый атрибут в таблицу элементов и увеличиваю это значение на единицу каждый раз, когда определенный элемент добавляется в определенный список.
- Второй вариант - когда мне нужно знать, сколько
Если конкретный элемент добавляется в список, тогда я буду применять
SELECT Count Query (с предложением where) для таблицы ItemList
Пожалуйста, предложите, какой подход лучше и почему? Я более склонен ко второму подходу, и в отношении эффективности, я думаю, у обоих одинаковые