Я использую MS SQL 2008 и C #.
Мне нужно спроектировать систему, способную регистрировать операции CRUD на определенной таблице.
В моем примере у меня есть две таблицы:
Articles
с PK ArticleId
и
LogArticles
с FK to ArticleId
.
LogArticles
предполагается для записи любых операций CRUD для моей таблицы Articles
(фактический код находится в моем BL без SQL).
Я понимаю, что abit о Ссылочная целостность , и меня беспокоит, каков наилучший подход в случае, если я удаляю запись из Articles
и отказываю или теряю ссылку в `LogArticles.
Вот мои идеи:
- Я держу FK на столе
Articles
и использую CASCADE SET NULL.
- Я удаляю FK из таблицы
LogArticles
и просто добавляю ArticleId без FK в мой LogArticles
.
Пожалуйста, скажите мне, что вы об этом думаете или какой у вас опыт, если вы уже строили подобную систему.
Спасибо за ваше время.