Rumah  >  Soal Jawab  >  teks badan

java - 唯一约束和程序查询是否存在的优缺点?

我想要保持数据库记录的不重复,现在有两种方案,一种是给这一个(或多个)字段添加唯一性约束,一种是程序先去查询数据库是否存在给个字段值的记录,再决定是否插入?请问这两种方式该如何抉择?有更好的方式么?

PHP中文网PHP中文网2763 hari yang lalu373

membalas semua(3)saya akan balas

  • 巴扎黑

    巴扎黑2017-04-18 10:05:43

    Bergantung pada program untuk memastikan keunikan tidak boleh dipercayai, kerana dalam keadaan konkurensi yang tinggi, dua langkah berikut akan bertindih, mengakibatkan sisipan berulang:

    1. Semak sama ada terdapat rekod dalam pangkalan data

    2. Jika tidak, masukkan rekod

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 10:05:43

    Adalah lebih baik untuk memilih kekangan unik:

    • Permudahkan logik aplikasi.

    • Apabila mewujudkan kekangan unik, sistem biasanya akan mencipta indeks secara automatik untuk memastikan keunikan sambil meningkatkan prestasi pertanyaan. (Dokumentasi PostgreSQL)

    Menambahkan kekangan unik akan secara automatik mencipta B-tree yang unik
    indeks pada lajur atau kumpulan lajur yang disenaraikan dalam kekangan.

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:05:43

    Penulis harus memahami apa tujuan pangkalan data Sistem pangkalan data dibangunkan dari sistem fail Jika anda mengikuti pilihan kedua, anda boleh menyimpannya secara terus sebagai fail. Pangkalan data bukan hanya SQL mudah Sebagai DBMS, ia juga menyediakan banyak fungsi lain, membolehkan anda menumpukan perhatian pada menyelesaikan masalah aplikasi sambil mengoptimumkan akses asas sistem.

    balas
    0
  • Batalbalas