PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Sequelize tidak membuat kunci asing sebagai kendala

Pertama, tidak jarang ORM menangani hal semacam ini secara internal daripada menggunakan batasan kunci asing dalam database.

Kedua, tidak jarang ORM membutuhkan pasangan pernyataan asosiasi untuk memicu semua penanganan internal yang mungkin Anda harapkan.

var Task = this.sequelize.define('Task', { title: Sequelize.STRING })
  , User = this.sequelize.define('User', { username: Sequelize.STRING })

User.hasMany(Task)
Task.belongsTo(User)

Terakhir, Sequelize sebenarnya akan menulis deklarasi kunci asing ke dalam database, tetapi hanya jika Anda juga mendeklarasikan beberapa jenis tindakan (atau kelambanan) dengan onUpdate atau onDelete .

User.hasMany(Task, { onDelete: 'SET NULL', onUpdate: 'CASCADE' })

CREATE TABLE IF NOT EXISTS `Task` (
  `id` INTEGER PRIMARY KEY, 
  `title` VARCHAR(255), 
  `user_id` INTEGER REFERENCES `User` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
);

Sumber contoh kode




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Grup zona waktu RoR Postgresql dengan tidak bekerja di Heroku

  2. Bagaimana cara memasukkan hasil nol / 0 dalam COUNT agregat?

  3. Cara membuat daftar semua pengguna di PostgreSQL

  4. Hasilkan nomor acak dalam kisaran 1 - 10

  5. CONSTRAINT untuk memeriksa nilai dari tabel yang terkait dari jarak jauh (melalui join dll.)