Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Model Database untuk Sistem Reservasi Sekolah Mengemudi. Bagian 2

Mari buat perubahan lebih lanjut ke dalam model data, yang saya buat di postingan blog saya sebelumnya, seperti memiliki pendekatan otomatis untuk menugaskan instruktur dan kendaraan ke pelajaran, membuat faktur kepada pelanggan, dan melacak mereka.

Pertama, saya perlu membangun logika di sisi aplikasi untuk menugaskan instruktur dan kendaraan ke pelajaran sebelum benar-benar terjadi. Hal utama yang harus dipastikan di sini adalah ketersediaan, yaitu seorang instruktur atau kendaraan dapat ditugaskan untuk pelajaran hanya jika keduanya tersedia pada waktu pelajaran yang dijadwalkan.

Saya perlu membuat dua meja terpisah untuk melacak hunian untuk instruktur dan kendaraan masing-masing. Anda mungkin bertanya-tanya mengapa saya bermaksud melacak tingkat hunian alih-alih ketersediaan. Jawabannya adalah, jika kita melacak okupansi alih-alih ketersediaan, maka kita tidak perlu membuat tabel lagi untuk menyimpan ketidaktersediaan sumber daya karena cuti yang direncanakan oleh instruktur atau beberapa layanan terjadwal untuk kendaraan. Dalam hal ketidaktersediaan yang direncanakan, catatan dimasukkan ke dalam tabel hunian yang sesuai.

Saya berasumsi di sini bahwa instruktur dan kendaraan hanya tersedia selama jam kerja, katakanlah pukul 8:00 hingga 18:00, pada hari kerja yang ditentukan oleh sekolah. Oleh karena itu saya dapat mengatakan bahwa seorang instruktur tersedia dalam waktu yang ditentukan pada hari kerja jika saya tidak menemukan detail huniannya untuk waktu dan hari yang ditentukan di staff_occupancy tabel.

Struktur tabel staff_occupancy adalah sebagai berikut:

Beberapa variasi dapat dimasukkan sesuai kebutuhan. Misalnya, harus ada jeda setidaknya 15 menit antara dua pelajaran berikutnya untuk seorang instruktur.

Struktur tabel vehicle_occupancy adalah sebagai berikut:

Alokasi instruktur dan kendaraan dicatat dalam reservation meja. Saya sudah menambahkan dua kolom, staff_id dan vehicle_id , ke dalam tabel ini. Alokasi ini jelas akan terjadi berdasarkan ketersediaannya.

Selain itu, saya akan menyimpan reservation_id di staff_occupancy dan vehicle_occupancy meja, sehingga jika terjadi pembatalan pelajaran, okupansi staf dan kendaraan terkait dapat dengan mudah dilepaskan. Tapi saya akan menjaga kedua kolom ini sebagai nullable sebagai hunian instruktur dan kendaraan belum tentu karena reservasi. Bagaimana jika seorang instruktur pergi cuti? Atau salah satu kendaraan masuk ke pusat layanan selama sehari?

Untuk mengizinkan penghapusan lunak dalam skenario seperti itu, saya akan menambahkan satu kolom bernama is_active di kedua tabel ini.

Faktur

Untuk kebutuhan invoice, saya akan membuat satu tabel yaitu invoice , untuk menyimpan detail faktur termasuk customer_id dan reservation_id . Di sini, penagihan harus dilakukan kepada pelanggan tetapi berdasarkan pelajaran yang dilakukan untuk pelanggan. Jadi kita membutuhkan reservation_id kolom di tabel faktur juga, sehingga pada titik waktu tertentu, seseorang dapat menarik laporan tentang faktur terperinci berdasarkan reservasi untuk pelanggan. Saya juga akan membuat satu kolom yaitu invoice_status_id , dalam tabel untuk menyimpan status faktur.

Model Basis Data

Berikut adalah struktur database yang diperbarui yang dirancang di Vertabelo:



Kesimpulan

Sekarang Anda pasti sudah mulai percaya bahwa pemodelan data untuk sistem reservasi sekolah mengemudi sama menarik dan menawannya dengan belajar mengemudi?

Jangan ragu untuk mengirimkan pertanyaan dan saran Anda mengenai artikel tersebut. Saya sangat senang untuk menjawabnya dan memasukkan saran Anda ke dalam artikel saya berikutnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Tidak Sama Dengan (!=) Operator untuk Pemula

  2. Cara Menjalankan Pekerjaan Jarak Jauh dari IRI Workbench

  3. Peningkatan potensial untuk pembaruan statistik:MAXDOP

  4. Pengantar IRI Voracity (Manajemen Data Total) [video]

  5. Cara Memesan Baris dengan Jumlah Grup di SQL