Penelitian menunjukkan bahwa mobil tetap diparkir selama 95% dari masa pakainya, menunjukkan bahwa sistem manajemen tempat parkir harus cerdas, efisien, dan kuat. Dalam artikel ini, kami akan membuat model data untuk sistem seperti itu.
Pengantar
Sebelum kita mulai membangun model data kita, pertama-tama kita harus memahami bagaimana tempat parkir terstruktur dan bagaimana mereka beroperasi. Mari kita lihat sekilas dua bidang utama ini.
-
Bagaimana struktur tempat parkir?
Tempat parkir tipikal terdiri dari satu atau lebih blok yang dibagi lagi menjadi lantai. Setiap lantai berisi beberapa sayap yang membantu pengemudi menyesuaikan diri dan mengingat tempat parkir mereka. Ini biasanya diberi label dengan huruf, seperti "A", "B", "C", dan seterusnya. Sebuah lantai biasanya memiliki batas ketinggian yang membatasi kendaraan tertentu memasuki tempat parkir. Selain itu, lantai berisi beberapa slot parkir bernomor unik. Beberapa dari slot ini disediakan untuk orang-orang cacat; lainnya dapat dipesan oleh pengunjung biasa dengan biaya tertentu.
-
Bagaimana tempat parkir beroperasi?
Untuk memahami bagaimana tempat parkir beroperasi, kita harus tahu lebih banyak tentang tipe orang yang mengunjungi tempat parkir. Pelanggan yang memasuki tempat parkir termasuk dalam salah satu kelompok berikut:
- Pelanggan tetap yang telah membeli tiket dua mingguan, bulanan, atau tahunan.
- Pelanggan prabayar yang memesan slot dari jarak jauh (di telepon atau online).
- Pelanggan walk-in yang tidak memiliki pass atau memesan slot dari jarak jauh. Slot akan diberikan kepada pelanggan tersebut berdasarkan ketersediaan.
Pelanggan reguler biasanya diberikan kartu/stiker untuk ditempatkan di suatu tempat yang terlihat di dashboard atau kaca depan mereka sehingga manajemen tempat parkir dapat dengan mudah menentukan bahwa pelanggan tidak melanggar aturan parkir. Tidak seperti pengunjung sesekali, pelanggan tetap tidak pernah mengeluarkan slip parkir setiap hari. Tempat parkir biasanya mencadangkan seluruh blok atau lantai untuk pengunjung regulernya untuk memastikan mereka selalu memiliki tempat parkir. Pelanggan reguler juga dapat memesan slot untuk diri mereka sendiri sehingga mereka dapat memarkir kendaraan mereka di slot yang sama setiap hari, tetapi ini biasanya dikenakan biaya tambahan.
Mereka yang membuat reservasi parkir jarak jauh biasanya hanya dapat menggunakan slot yang ditentukan untuk jangka waktu terbatas beberapa jam, setelah itu slot dibebaskan. Ketika pengunjung ini memasuki tempat parkir, mereka harus parkir di slot yang telah disediakan. Denda dikenakan kepada pelanggan yang tidak meninggalkan tempat parkir setelah jendela waktu berlalu, tetapi pelanggan pasti dapat pergi sebelum reservasi mereka berakhir. Beberapa tempat parkir memiliki jangka waktu minimum yang tetap (misalnya, pelanggan mungkin harus memesan slot selama tiga jam meskipun mereka hanya akan pergi selama satu jam).
Pelanggan walk-in diberikan slip parkir ketika mereka memasuki tempat parkir. Slot parkir kemudian diberikan kepada pelanggan saat slip dibuat, berdasarkan preferensi yang telah mereka tentukan. Proses reservasi di sini pada dasarnya sama dengan yang dilakukan untuk pelanggan prabayar. Namun, reservasi langsung tergantung sepenuhnya pada ketersediaan. Sebuah slot mungkin dikenakan biaya lebih banyak daripada jika Anda memesan tempat sebelumnya, terutama jika ketersediaan terbatas dan permintaan tinggi.
Model Data
Dengan memperhatikan persyaratan ini, mari kita lanjutkan dan buat model data kita. Kali ini, kita akan bekerja dengan tiga bagian utama:
- Tempat parkir
- Pelanggan
- Reservasi parkir
Mari kita lihat lebih dekat masing-masing area model data ini.
Bagian 1:Tempat Parkir
Bagian Tempat Parkir tidak hanya menangkap semua informasi penting tentang tempat parkir itu sendiri tetapi juga menyederhanakan cara di mana unit terkecil tempat parkir (slot) dapat dikelola oleh perusahaan. Beberapa kolom tabel telah ditambahkan hanya untuk tujuan membuat reservasi parkir dan operasi lebih efisien di bagian selanjutnya.
Sesuai dengan struktur tempat parkir yang kita bahas di pendahuluan, kita telah membuat tabel berikut untuk menangkap setiap detail yang kita perlukan.
parking_lot
– menyimpan informasi dasar tentang tempat parkir. Kolom untuk tabel ini adalah:
id
– kunci utama untuk tabel ini. Ini memberikan nomor unik untuk setiap tempat parkir.number_of_blocks
– melacak jumlah blok di tempat parkir.is_slot_available
– menandakan apakah tempat parkir saat ini memiliki slot yang tersedia.address
– menyimpan alamat lengkap tempat parkir.zip
– menyimpan kode pos tempat parkir, memungkinkan pelanggan untuk lebih mudah mencari tempat parkir yang tersedia di area tertentu hanya dengan menanyakan kode pos yang diinginkan.is_reentry_allowed
– menandakan apakah pelanggan dapat keluar dari tempat parkir dan masuk kembali dengan slip parkir yang sama. Perhatikan bahwa banyak tempat parkir biasanya tidak mengizinkan pelanggan melakukan ini. Di tempat parkir seperti itu, Anda harus membeli slip baru setiap kali Anda masuk kembali pada hari tertentu.operating_company_name
– menyimpan nama perusahaan yang mengoperasikan tempat parkir.is_valet_parking_available
– menandakan apakah tempat parkir menawarkan layanan parkir valet.
block
– tempat parkir dibagi menjadi satu atau lebih blok. Tabel ini menyimpan informasi tentang setiap blok tempat parkir. Kolom untuk tabel ini adalah:– tempat parkir dibagi menjadi satu atau lebih blok. Tabel ini menyimpan informasi tentang setiap blok tempat parkir. Kolom untuk tabel ini adalah:
id
– kunci utama untuk tabel ini.parking_lot_id
– kolom referensi dariparking_lot
tabel yang mengidentifikasi tempat parkir tempat blok tersebut berada.block_code
– menyimpan kode yang terkait dengan blok ini. Blok biasanya diberi kode pengenal yang unik, seperti “A”, “B”, “C”, “11”, “22”, “33”, dan seterusnya.number_of_floors
– menyimpan jumlah lantai di blok ini. Angka “1” menunjukkan bahwa ini adalah blok di permukaan tanah tanpa lantai.is_block_full
– menandakan apakah blok saat ini penuh.
floor
– di tempat parkir bertingkat, blok dapat memiliki lebih dari satu lantai. Namun, tabel ini juga dapat dirujuk oleh blok permukaan tanah. Kolom untuk tabel ini adalah:
id
– kunci utama untuk tabel ini.block_id
– mengidentifikasi blok tempat lantai berada.floor_number
– mewakili jumlah lantai (di mana 1 =permukaan tanah).max_height_in_inch
– di tempat parkir bertingkat, setiap lantai memiliki batasan ketinggian. Kolom ini menyimpan ketinggian maksimum yang diizinkan untuk kendaraan di lantai.number_of_wings
– lantai dibagi lagi menjadi sayap, yang membantu pelanggan mengingat di mana mereka parkir. Kolom ini menyimpan jumlah sayap yang ada pada sebuah lantai.number_of_slots
– menyimpan jumlah slot yang ada di lantai.is_covered
– mengidentifikasi apakah lantai tertutup. Lantai atas tempat parkir bertingkat atau tempat parkir di permukaan tanah tidak akan pernah tertutup.is_accessible
– menunjukkan apakah lantai mudah diakses, terutama oleh penyandang cacat. Jika lot bertingkat memiliki lift operasional, setiap lantainya dianggap dapat diakses.is_floor_full
– menunjukkan apakah lantai terisi penuh.is_reserved_reg_cust
– menunjukkan apakah lantai khusus disediakan untuk pelanggan tetap.
parking_slot
– tabel ini menyimpan semua informasi tentang slot parkir di tempat parkir. Kolom untuk tabel ini adalah:
id
– kunci utama untuk tabel ini.floor_id
– mengidentifikasi lantai tempat slot berada.slot_number
– menyimpan pengidentifikasi unik slot di lantai tertentu.wing_code
– mengidentifikasi sayap tempat slot berada.
Bagian 2:Pelanggan
Selanjutnya, kami sekarang akan mulai merinci semua informasi yang relevan tentang pelanggan. Perhatikan bahwa tempat parkir tidak peduli dengan pengambilan dan penyimpanan informasi pribadi seperti nama, alamat, dll., karena mereka dapat mengakses portal DMV lokal mereka kapan saja untuk mendapatkan informasi tersebut, jika diperlukan.
customer
– menyimpan semua detail yang relevan tentang semua jenis pelanggan yang mungkin mengunjungi tempat parkir (reguler, satu kali, dan prabayar). Kolom untuk tabel ini adalah:
id
– pengenal unik untuk pelanggan.vehicle_number
– menyimpan nomor plat kendaraan pelanggan.registration_date
– menyimpan tanggal kendaraan pertama kali didaftarkan ke tempat parkir.is_regular_customer
– menunjukkan apakah pelanggan memiliki pass reguler. Jika kolom menyimpan nilai true, maka harus ada entri yang valid diregular_pass
meja. Setelah pass kedaluwarsa dan pelanggan belum memperbaruinya, nilai di kolom ini akan diperbarui menjadi false.contact_number
– menyimpan nomor kontak pelanggan. Karena beberapa orang enggan membagikan nomor kontak mereka dengan tempat parkir, kami membuat kolom ini tidak dapat dihubungi.
regular_pass
– menyimpan informasi tentang tiket reguler yang dikeluarkan untuk pelanggan. Kolom untuk tabel ini adalah:
id
– kunci utama untuk tabel ini.customer_id
– kolom referensi dari tabel pelanggan.purchase_date
– menyimpan tanggal pembelian pass.start_date
– menyimpan tanggal di mana pass akan dianggap valid, yang mungkin belum tentu merupakan tanggal pembelian, karena beberapa pelanggan membeli pass sebelumnya.duration_in_days
– menyimpan jumlah hari di mana pass berlaku. Tiket bulanan biasanya tetap berlaku selama 30 hari.cost
– menyimpan biaya, dalam mata uang lokal, yang harus dibayar pelanggan untuk membeli tiket.
Bagian 3:Reservasi
Bagian terakhir kami didedikasikan untuk merinci proses reservasi slot parkir. Saat melakukan reservasi, pelanggan biasanya harus memberikan detail tertentu, seperti perkiraan tanggal dan waktu kedatangan mereka, jumlah waktu yang mereka inginkan untuk memesan slot, dan sebagainya. Kami membahas dua tabel utama dari bagian ini di bawah ini.
parking_slot_reservation
– menyimpan detail reservasi. Kolom untuk tabel ini adalah:
id
– memberikan nomor referensi unik untuk permintaan reservasi individu.customer_id
– referensi ke pengenal pelanggan yang membuat reservasi ini.start_timestamp
– menyimpan perkiraan tanggal dan waktu kedatangan pelanggan.duration_in_minutes
– menyimpan durasi reservasi dibuat.booking_date
– menyimpan tanggal reservasi dibuat.parking_slot_id
– kolom internal yang memberikan slot parkir kepada pelanggan setelah permintaan mereka diterima dan pembayaran telah dilakukan.
parking_slip
– menyimpan informasi tentang waktu masuk dan keluar pelanggan, serta biaya yang relevan. Kami membuat tabel ini untuk tempat parkir yang memungkinkan beberapa entri dan keluar di bawah reservasi yang sama. Kolom untuk tabel ini adalah:
id
– kunci utama untuk tabel ini.parking_slot_reservation_id
– kolom referensi yang mengidentifikasi permintaan reservasi terkait.actual_entry_time
– menyimpan tanggal dan waktu kedatangan pelanggan.actual_exit_time
– menyimpan tanggal dan stempel waktu keberangkatan (keluar) pelanggan.basic_cost
– menyimpan biaya dasar reservasi.penalty
– menyimpan nilai 0 secara default. Jika pelanggan menunda keluar, biaya penalti akan diterapkan, dan nilai di kolom ini akan diperbarui.total_cost
– kolom ini hanya menambahkan nilaibasic_cost
dan kolom penalti.is_paid
– masuk kembali biasanya hanya diperbolehkan ketika pelanggan telah membayar biaya parkir mereka. Kolom ini menunjukkan apakah pembayaran ini telah dilakukan.
Kesimpulan
Pada artikel ini, kami menyajikan ikhtisar model data untuk sistem manajemen tempat parkir. Ada banyak aplikasi yang membantu pengguna menemukan tempat parkir dengan mengekstrak, memproses, dan mengumpulkan data (seperti ketersediaan dan biaya) untuk tempat parkir di sekitar yang ditentukan. Ini sangat berguna bagi orang-orang yang mengunjungi kota-kota besar seperti New York, Los Angeles, dan lainnya di mana menemukan tempat parkir bisa menjadi mimpi buruk jika Anda tidak merencanakan kunjungan Anda dengan hati-hati. Aplikasi semacam itu bergantung pada model data dan API basis data yang dirancang dengan baik untuk mengambil informasi ini.
Dalam artikel kami berikutnya, kami akan mengubah model data kami saat ini menjadi solusi untuk sistem ketersediaan parkir waktu nyata. Jangan ragu untuk memposting pemikiran, umpan balik, dan rekomendasi Anda di bagian komentar di bawah.