Relasi antara Pelanggan dan Reservasi adalah one-to-many, di mana satu pelanggan dapat memiliki banyak reservasi, sedangkan setiap reservasi hanya terkait dengan satu pelanggan. Relasi ini direpresentasikan melalui atribut ID_Pelanggan pada tabel Reservasi sebagai foreign key yang mengacu ke tabel Pelanggan.
Relasi antara Pegawai dan Reservasi adalah one-to-many, yang berarti satu pegawai dapat menangani banyak reservasi, namun setiap reservasi hanya dilayani oleh satu pegawai. Hubungan ini diimplementasikan melalui atribut ID_Pegawai pada tabel Reservasi sebagai foreign key yang merujuk ke tabel Pegawai.
Relasi antara Reservasi dan Pembayaran adalah one-to-one, di mana setiap reservasi memiliki satu pembayaran yang dicatat secara unik. Relasi ini direpresentasikan dengan atribut ID_Reservasi pada tabel Pembayaran sebagai foreign key yang mengacu ke tabel Reservasi.
Relasi antara Layanan dan Reservasi bersifat many-to-many, karena satu reservasi dapat memesan banyak layanan, dan satu layanan dapat muncul dalam banyak reservasi. Hubungan ini dikelola melalui tabel perantara Reservasi_has_Layanan, yang menghubungkan kedua tabel melalui foreign key ID_Reservasi dan ID_Layanan.
Rancangan EERD (Enhanced Entity-Relationship Diagram)
Berikut adalah penjelasan dari tabel-tabel yang terdapat pada diagram diatas:
Berikut penjelasan yang lebih ringkas:
1. Tabel Pelanggan
- id_pelanggan (INT): Primary key untuk identitas unik pelanggan.
- nama (VARCHAR(100)): Nama pelanggan, panjang maksimal 100 karakter.
- alamat (TEXT): Alamat lengkap pelanggan.
- no_telepon (VARCHAR(15)): Nomor telepon pelanggan.
- email (VARCHAR(45)): Email pelanggan.
2. Tabel Reservasi
- id_reservasi (INT): Primary key untuk identitas unik reservasi.
- tanggal_reservasi (DATE): Tanggal reservasi.
- waktu_reservasi (TIME): Waktu reservasi.
- pelanggan_id_pelanggan (INT): Foreign key ke id_pelanggan di tabel Pelanggan.
- pegawai_id_pegawai (INT): Foreign key ke id_pegawai di tabel Pegawai.
3. Tabel Pegawai
- id_pegawai (INT): Primary key untuk identitas unik pegawai.
- nama (VARCHAR(100)): Nama pegawai, maksimal 100 karakter.
- jabatan (VARCHAR(50)): Posisi atau jabatan pegawai.
- no_telepon (VARCHAR(15)): Nomor telepon pegawai.
- gaji (FLOAT): Gaji pegawai dalam angka desimal.