Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Desain DB:satu DB besar untuk semua pelanggan atau banyak DB kecil

Satu pertanyaan yang ingin saya jawab adalah apakah Anda perlu melihat data di seluruh pelanggan untuk pelaporan atau penggunaan Anda sendiri? Dalam hal ini, Anda harus pergi dengan nomor satu atau Anda akan mengalami mimpi buruk untuk mendapatkan pelaporan yang baik.

Apakah Anda akan melakukan kustomisasi oleh pelanggan? Ini akan menunjukkan bahwa memisahkan hal-hal mungkin menjadi pilihan yang lebih baik. Jika Anda tidak akan pernah menyesuaikan, maka jangan pisahkan.

Saya telah bekerja dengan sistem di semua opsi ini dan yang pertama sejauh ini adalah yang terbaik untuk pemeliharaan jangka panjang. Namun semua bisa diterapkan jika Anda terorganisir dan merencanakan dengan baik. Jika Anda memilih opsi terpisah, Anda harus dapat mendorong perubahan ke semua klien dan dengan demikian harus melakukan perubahan pada database melalui skrip yang disimpan di kontrol sumber. Anda bahkan mungkin perlu mempertahankan kontrol sumber berdasarkan versi database, sehingga klien dapat memilih untuk memutakhirkan atau tidak. Pada opsi 1 tentu saja, tidak ada yang memiliki opsi untuk tetap menggunakan versi lama. Jika itu lebih sesuai dengan kebutuhan bisnis Anda, itu adalah nilai plus untuk opsi 1.

Saya sangat setuju dengan Ollie Jones, jika Anda menggunakan opsi satu, Anda harus memiliki desain keamanan database yang baik untuk mencegah klien melihat data klien lain. Kami pernah memindahkan klien dari server di mana mereka adalah satu-satunya klien ke database bersama dan hanya satu proc yang melewatkan meminta client_ID (Itu tidak diperlukan di sistem lama dan pengembang menjadi ceroboh) akhirnya mengirim email ke semua perwakilan penjualan semua klien lain dengan informasi tentang klien pertama. Ini menghabiskan banyak uang bagi perusahaan (baik untuk memperbaiki masalah, mengirim email permintaan maaf dan akibatnya kami hampir kehilangan klien dan harus memberi mereka beberapa jeda biaya untuk mempertahankannya) dan banyak permintaan maaf yang merendahkan dan pengembang hanya sedikit merindukan kehilangan pekerjaannya. Biarkan ini menjadi pelajaran yang tidak Anda pelajari dengan cara yang sulit.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menangani kunci asing saat mempartisi

  2. bagaimana cara memperbarui satu atau lebih bidang dengan mengabaikan bidang kosong ke dalam database mysql?

  3. Tes Ekspresi Regex MySql

  4. Unggahan file lebih lambat dari kecepatan unggah jaringan pengguna di Apache (EC2)

  5. Permintaan MySQL ke ElasticSearch