Я удалил объект и хочу, чтобы его идентификатор тоже был удален из таблицы отношений. Как мне это сделать? т.е. объекты с отношениями удаляются, но таблицы их отношений остаются.
Также хотел спросить, GORM - лучшее решение ORM для Go-Gin?
Я удалил объект и хочу, чтобы его идентификатор тоже был удален из таблицы отношений. Как мне это сделать? т.е. объекты с отношениями удаляются, но таблицы их отношений остаются.
Также хотел спросить, GORM - лучшее решение ORM для Go-Gin?
Попробуйте явно добавить к своим моделям внешние ключи и ON DELETE CASCADE
. Я обнаружил, что GORM может быть ненадежным, когда он подходит к подобным вещам, но если делать это явно, кажется, что он всегда работает.
Например:
type Person struct {
ID int
Bio Biography `gorm:"Foreignkey:PersonID;"`
Name string
}
type Biography struct {
ID int
Content string
PersonID int `sql:"type:bigint REFERENCES people(id) ON DELETE CASCADE"`
}
Примечание: вы должны указать, как будут называться фактические столбец и таблица базы данных, а не поле. Поскольку GORM автоматически формирует множественное число и преобразует таблицы в snake_case, я ссылаюсь на столбец people(id)
. Если вы перезаписываете эту функцию, используйте любое имя таблицы и столбца, которое у вас есть.