Проверка удаления записи ActiveJDBC

Что было бы лучшим подходом, если я хочу поставить проверку на удаление записи? Вот почему.

У меня есть две таблицы, Store и Staff.

Структура магазина:

  • ID
  • Код магазина
  • Название магазина

Структура персонала:

  • ID
  • Кодекс персонала
  • Имя персонала
  • Код магазина

Как видите, table store связан с table staff.

Что, если пользователь попытается удалить хранилище, которое уже используется в таблице персонала? Если бы не проверка, мои данные были бы сломаны. Как я могу предотвратить это?

Спасибо.


person Vincent Dingding    schedule 04.08.2017    source источник


Ответы (1)


Лучший способ реализовать это через ссылочную целостность в базе данных, а не во фреймворке.

Структура МАГАЗИНА:

  • id
  • код
  • имя

Структура ПЕРСОНАЛА:

  • id
  • код
  • имя
  • store_id

Как видите, таблица STAFF "принадлежит" STORE, поскольку она содержит идентификатор родительской записи. Это классическая ассоциация «один ко многим»: http://javalite.io/one_to_many_associations

Вы можете сделать одно из двух:

  1. Выдать исключение из БД, если вы удаляете родителя без удаления дочернего
  2. Каскадное удаление дочернего элемента в случае автоматического удаления родителя (в БД)

Несколько ссылок, предложенных Google:

https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html http://www.mysqltutorial.org/mysql-on-delete-cascade/

person ipolevoy    schedule 14.11.2017