Цель: при удалении пользователя все записи для пользователя в пользовательской категории также должны быть удалены.Symfony 1.4 Справка схемы схемы Doctrine, необходимая для разрешения нарушения ограничений целостности
Схема:
User:
actAs: { Timestampable: ~ }
columns:
first_name: { type: string(255) }
name: { type: string(255) }
company: { type: string(255) }
email: { type: string(255) }
phone: { type: string(255) }
language_id: { type: integer, notnull: true }
token: { type: string(255) }
activated: { type: boolean, default: false }
relations:
Categories:
class: Category
local: user_id
foreign: category_id
refClass: UserCategory
type: many
UserCategory:
actAs: { Timestampable: ~ }
columns:
user_id: { type: integer, notnull: true }
category_id: { type: integer, notnull: true }
Category:
actAs: { Timestampable: ~ }
columns:
language_id: { type: integer, notnull: true }
name: { type: string(255), notnull: true, unique: false }
revision: { type: integer, notnull: false }
icon: { type: string(255) }
relations:
User:
class: User
local: category_id
foreign: user_id
refClass: UserCategory
type: many
Что происходит:
SQLSTATE [23000]: Integrity нарушение ограничения: 1451 Невозможно удалить или обновить родительскую строку:. Ограничение внешнего ключа не удается (
testtable
user_category
, КОНСТРАИРОВАНИЕuser_category_user_id_user_id
ИНОСТРАННЫЙ КЛЮЧ (user_id
) ССЫЛКИuser
(id
))
Вы используете каскады уровня базы данных, что является самым быстрым решением. +1 – greg0ire