Rumah > Soal Jawab > teks badan
我想要保持数据库记录的不重复,现在有两种方案,一种是给这一个(或多个)字段添加唯一性约束,一种是程序先去查询数据库是否存在给个字段值的记录,再决定是否插入?请问这两种方式该如何抉择?有更好的方式么?
巴扎黑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:
Semak sama ada terdapat rekod dalam pangkalan data
Jika tidak, masukkan rekod
高洛峰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.
伊谢尔伦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.