Я создаю систему, которая является центральным хранилищем данных из ряда других систем. Процесс синхронизации необходим для обновления центрального репозитория при обновлении данных других систем. Там будет таблица sync_action, чтобы определить, с какой системой необходимо синхронизировать центральное репо, и тип требуемой синхронизации. Есть набор определенных действий, которые вряд ли можно будет изменить. Ниже представлена упрощенная система.
На мой взгляд, я могу подойти к этому двумя способами:
Вариант 1 ) Имеется таблица Action
, в которой доступны 3 действия.Имейте таблицу sync_action
, которая использует внешний ключ для ссылки на необходимые действия.
Таблица: Система
ID Description
1 Slave System 1
2 Slave System 2
Таблица: Действие
ID Description
1 Insert
2 Update
3 Delete
Таблица: Sync_action
ID Action System
1 1 1
2 2 1
Вариант 2 ) Вместо внешнего ключа используйте ограничение проверки для sync_action.action
, поэтому могут быть вставлены только действия Insert / Update / Delete
.
Таблица: Sync_action
ID Action System
1 Insert 1
2 Update 1
Я хотел бы знать, какие факторы влияют на определение лучшего подхода при выборе между ограничениями целостности, внешним ключом и ограничением проверки. Были похожие темы, но я не нашел их достаточно определенными. Это может быть потому, что это до интерпретации, но любые мысли будут оценены.
Ура