Если вы не знаете ответ на этот вопрос, то вам не следует пытаться поддерживать многочисленные RDMS для вашего приложения.Ставить прямо.Опция CASCADE доступна в любом реляционном БД, который имеет значение.Кроме того, вы должны рассмотреть вопрос о том, как хранить иерархические данные, чтобы удалить дочерние записи.
Например, если вы пытаетесь удалить все «файлы» в «папке» при использовании модели вложенного набора, это будет просто вопрос
DELETE from files where id > :lft and id < :rgt
Но в любом случае вы все равно можете удалить из нескольких таблиц, используя JOIN delete.Тем не менее, this не поддерживается многими RDMS, поэтому, если вас беспокоит использование каскада, вы никогда не сможете использовать объединения-удаления для каждой базы данных, даже если вы используете DBAL.
Ответ
- Используйте DBAL, например, Doctrine DBAL (не ORM), и используйте каскады, где это поддерживается.
- Pickединую базу данных, и развивайте с тем, что вы знаете об этом.