База данных Ссылочная целостность ваше мнение о журнале таблицы - PullRequest
0 голосов
/ 23 июня 2011

Я использую 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.

Пожалуйста, скажите мне, что вы об этом думаете или какой у вас опыт, если вы уже строили подобную систему. Спасибо за ваше время.

1 Ответ

1 голос
/ 23 июня 2011

если я понимаю ваш вопрос:

сохраните структуру, как вы описали, затем добавьте триггер на Article, чтобы отправить событие на LogArticles с текущим ключом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...