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

Pertanyaan praktik terbaik untuk MySQL:pesan berdasarkan id atau tanggal?

Jika ada ada kemungkinan Anda akan mendapatkan dua ditambahkan dengan tanggal yang sama, Anda mungkin perlu:

SELECT balance FROM my_table ORDER BY date_added DESC,id DESC LIMIT 1;

(perhatikan klausa 'turun' di kedua bidang).

Namun, Anda perlu memperhitungkan apa yang Anda inginkan terjadi ketika seseorang menambahkan entri penyesuaian 2 Februari yang diberi tanggal 31 Januari untuk memastikan bulan Januari selesai. Ini akan memiliki ID yang lebih besar daripada yang dibuat pada 1 Februari.

Umumnya, sistem akuntansi hanya bekerja pada tanggal. Mungkin jika Anda bisa memberi tahu kami mengapa urutannya penting, kami bisa membuat saran lain.

Menanggapi komentar Anda:

Saya akan memberikan beberapa saran - hanya ini yang dapat saya pikirkan segera, saya biasanya memuntahkan lebih banyak "saran" dengan lebih sedikit dorongan :-) Dua yang pertama, lebih terkait database daripada terkait akuntansi, adalah:

Pertama, lakukan semuanya dalam bentuk normal ketiga dan hanya kembali jika dan ketika Anda memiliki masalah kinerja. Ini akan menghemat banyak kecemasan dengan data duplikat yang mungkin keluar dari langkah. Bahkan jika Anda kembali, gunakan pemicu dan kemampuan DBMS lainnya untuk memastikan bahwa data tidak keluar dari langkah.

Contoh, jika Anda ingin mempercepat pencarian pada kolom last_name, Anda dapat membuat kolom upper_last_name (diindeks) kemudian menggunakannya untuk menemukan catatan yang cocok dengan istilah pencarian yang sudah menggunakan huruf besar. Ini hampir selalu lebih cepat daripada fungsi per baris upper(last_name) . Anda dapat menggunakan pemicu sisipkan/perbarui untuk memastikan upper_last_name selalu disetel dengan benar dan ini hanya menimbulkan biaya saat nama berubah, tidak setiap kali Anda mencari.

Kedua, jangan menduplikasi data bahkan di seluruh tabel (seperti skema Anda saat ini) kecuali Anda dapat menggunakan trik tipe pemicu yang sama untuk menjamin data tidak akan keluar dari langkah. Apa yang akan dilakukan pelanggan Anda saat Anda mengirimkan faktur kepada mereka di mana saldo akhir tidak sesuai dengan saldo awal ditambah pembelian? Itu tidak akan membuat perusahaan Anda terlihat sangat profesional :-)

Ketiga (dan ini lebih terkait dengan akuntansi), Anda biasanya tidak perlu khawatir tentang jumlah transaksi saat menghitung saldo dengan cepat. Itu karena sistem akuntansi biasanya memiliki fungsi roll-over pada akhir tahun yang mengatur ulang saldo awal.

Jadi, Anda biasanya tidak perlu memproses data lebih dari satu tahun sekaligus yang, kecuali jika Anda adalah pemerintah AS atau Microsoft, tidak terlalu berat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kunci asing MySQL pada diri sendiri

  2. Cara Menggunakan MySql Di Mac

  3. Optimalkan kinerja tulis untuk instans AWS Aurora

  4. menggunakan variabel lingkungan untuk konfigurasi sekuel lokal

  5. Temukan kecocokan terdekat untuk nama kota yang salah eja?