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

Menyajikan Makanan Lezat (dan Data) – Model Data untuk Restoran

Bagian apa yang dimainkan desain basis data dalam menjalankan restoran? Seperti apa model data untuk database restoran? Cari tahu di artikel ini.

Sebuah restoran menyajikan makanan siap saji kepada orang-orang. Ini adalah jenis bisnis yang berkembang pesat di seluruh dunia, dan seringkali dengan banyak gejolak. Orang-orang merasa sangat nyaman pergi ke restoran, dan mereka mulai mengharapkan berbagai pilihan untuk makanan mereka berikutnya.

Di New York City saja, ada lebih dari 24.000 tempat makan. Ini termasuk takeaways (yaitu pizza, sub toko, takeout Cina), toko makanan, kafe, dan restoran fine dining. Pepatah berikut ini sangat cocok dengan industri restoran; itu praktis pernyataan misi universal mereka:

Lakukan apa yang Anda lakukan dengan sangat baik sehingga mereka ingin melihatnya lagi dan membawa serta teman dan keluarga mereka.

Walt Disney

Mengapa Restoran Membutuhkan Database?

Manajemen restoran bukanlah tugas yang mudah. Dalam hal melacak dan melaksanakan tugas sehari-hari, bahkan pemilik restoran yang paling berpengalaman pun mungkin memiliki lebih dari yang dapat mereka kelola dengan mudah. Menjalankan restoran yang menguntungkan memerlukan pengelolaan inventaris/stok, meminimalkan pemborosan, mengelola meja (terutama pada jam sibuk), mempertahankan menu yang ramah pelanggan, melaksanakan pesanan secara efisien, dan mengawasi staf restoran. Itu cukup banyak!

Sistem manajemen restoran harus melakukan sebagian besar aktivitas ini dengan intervensi manual yang minimal. Itu harus menyajikan manajer dengan informasi yang akurat sehingga mereka dapat membuat pelanggan senang. Ini bisa berarti membuat perubahan yang sesuai pada menu dan bahkan cara fungsi restoran.

Model Data Restoran

Artikel ini adalah tentang merancang model data lengkap untuk restoran (makan di tempat atau dibawa pulang). Kami juga akan membahas dua masalah besar yang dihadapi orang-orang di bisnis restoran dalam aktivitas sehari-hari mereka. Terakhir, kami akan memikirkan perubahan yang diperlukan untuk membangun kapabilitas tersebut ke dalam sistem yang ada.

Saat kita menyelami model data, saya akan menyebutkan peran pengguna tertentu. Peran ini sebenarnya untuk anggota staf, seperti:

  • Manajer – Mengelola inventaris, penggajian, penjadwalan karyawan, dan metrik untuk restoran
  • Tuan Rumah – Menempatkan tamu dan menetapkan server ke meja
  • Pelayan (juga dikenal sebagai server) – Membawa pesanan pelanggan ke dapur dan mengantarkan pesanan yang sudah disiapkan kepada pelanggan
  • Supervisor (juga dikenal sebagai chef atau kepala juru masak) – Mengawasi tugas di dapur dan memberikan tugas kepada juru masak
  • Cook – Membaca detail pesanan yang diterima dari supervisor, menyiapkan makanan, dan memberi tahu supervisor jika sudah siap
  • Busboy – Melacak tabel mana yang digunakan; membersihkan tabel dan memperbarui statusnya jika diperlukan

Model data untuk bisnis restoran harus memiliki fitur dasar berikut:

  • Manajemen KOT (Token Pesanan Dapur)
  • Manajemen KOD (Pengiriman Pesanan Dapur)
  • Manajemen Menu

Mari kita lihat masing-masing fitur ini secara mendetail.

Manajemen KOT (Token Pesanan Dapur)

Ini adalah bagian terpenting dari model data kami:ini semua tentang mengumpulkan detail pesanan dari pelanggan melalui berbagai saluran. Mengapa berbagai saluran? Karena ada beberapa cara agar pesanan bisa dilakukan – online atau melalui aplikasi seluler, melalui panggilan telepon, atau melalui pelayan atau karyawan lainnya. Setiap kali pesanan dilakukan oleh pelanggan, KOT (Token Pesanan Dapur) dihasilkan. Nantinya, KOT akan disiapkan oleh staf dapur.

Saya akan membuat tabel, kot , untuk menyimpan detail pesanan awal. Tabel ini memiliki kolom berikut:


Nama Kolom Deskripsi
Id Kunci utama untuk tabel ini
order_channel_id Saluran tempat pesanan ditempatkan.
dine_in_table_sitting_id Tabel tempat asal pesanan. Kolom ini hanya akan diisi jika ada pesanan di tempat.
order_in_time Stempel waktu saat pesanan masuk ke sistem
order_out_time Stempel waktu saat pesanan dikirim oleh staf dapur
staff_id ID orang yang mengambil pesanan. Untuk pesanan dine-in, kolom ini berisi ID dari pramusaji yang mengambil pesanan. Dalam pengaturan lain, ID ini akan menjadi 'SYSTEM'.
kot_status_id Menentukan status KOT saat ini.


Saya ingin menunjukkan bahwa pesanan yang dikumpulkan dari satu tabel pada satu waktu ditandai di bawah satu kot_id . Jika tabel yang sama kemudian memesan lebih banyak item, sistem akan membuat kot_id lain dan menandai semua item baru ini di bawah ID tersebut. Pada akhirnya, semua kot_ids untuk tabel yang sama akan ditambahkan bersama dalam tagihan akhir.

Pengelolaan KOT memerlukan tambahan tabel statis dan transaksional, yaitu:

  • order_channel – Tabel ini berisi detail tentang saluran yang digunakan restoran untuk menerima pesanan. Contoh umum termasuk online, makan di tempat, dibawa pulang (dibawa pulang), dll.
  • dine_in_table_sitting – Ini adalah tabel transaksional yang menyimpan data okupansi tabel. Kolomnya termasuk dine_in_table_id , dine_in_time , dine_out_time , num_person_sitting , dan customer_id . Segera setelah tuan rumah menugaskan pelanggan ke tabel dan memasukkan informasi ke dalam sistem, catatan dimasukkan ke dalam tabel ini. Untuk mengambil status hunian tabel saat ini pada waktu tertentu, ini adalah tabel yang akan digunakan.

    Misalkan Anda ingin membangun fitur ini. Berikut adalah SQL yang akan memberi tahu Anda status hunian saat ini untuk semua meja restoran:

    SELECT 
      b.id as table_id,
      c.area_desc,
      CASE 
        WHEN a.dine_in_table_id IS NULL THEN ‘VACANT’ 
        ELSE ‘OCCUPIED’
      END AS current_table_status
    FROM dine_in_table_sitting a, dine_in_table b, dine_in_table_area
    WHERE a.dine_in_table_id (+) = b.id
    	AND b.dine_in_table_area = c.id
    	AND a.dine_out_time IS NULL;
    

  • kot_status – Tabel ini menampung semua kemungkinan status untuk KOT:pesanan diterima , pesanan dalam proses , pesanan terkirim , dll.
  • kot_menu_item – Tabel transaksi ini menyimpan rincian semua item dalam KOT. Ini juga mendefinisikan hubungan antara KOT dan menu_item . menu_item_id dan quantity bidang terhadap kot_id menandakan item yang dipesan dan berapa banyak yang dibutuhkan.

Manajemen KOD (Pengiriman Pesanan Dapur)

Sebagian besar dari seberapa baik kinerja restoran bermuara pada pengelolaan KOT di dalam dapur. Biasanya seorang supervisor mengumpulkan KOT dari pramusaji, karyawan lain, atau sistem online. Kemudian supervisor menugaskan item menu ke satu atau lebih juru masak. Si juru masak menyiapkan barang-barang dan menyerahkannya kepada pengawas. Kemudian pelayan atau anggota staf lain mengumpulkan pesanan dan mengirimkannya ke pelanggan.

Tapi itu tidak semua yang termasuk dalam manajemen KOD. Mengelola sumber daya, menyimpan bahan, memperbarui inventaris yang tersisa secara teratur, dan meminta inventaris baru sesuai kebutuhan juga merupakan bagian dari operasi dapur sehari-hari. Supervisor memainkan peran penting dalam kelancaran dapur, terutama selama jam sibuk. Sebuah sistem dianggap 'pintar' atau 'cerdas' jika dapat meniru fungsi pekerjaan supervisor – yang hampir tidak mungkin dilakukan di sebagian besar tempat.

Untuk membangun model untuk bagian manajemen yang kompleks ini, saya akan membuat tabel lain, bernama KOD . Tabel ini terdiri dari kolom berikut:


Nama Kolom Deskripsi
Id Kunci utama untuk tabel ini
kot_menu_item_id Menandakan item KOT yang sedang dikerjakan oleh staf dapur
staff_id Menyimpan ID juru masak yang menyiapkan barang
kod_status_id Menampilkan status item saat ini


Manajemen Menu

Komponen ini sama pentingnya dengan pengelolaan KOT dan KOD. Menu – baik dalam presentasi visual maupun hidangan yang ditawarkan – adalah salah satu hal pertama yang menarik pelanggan. Jadi, setiap pemilik restoran berusaha membuat menu mereka semenarik mungkin.

Mari buat tabel lain untuk menyimpan detail menu. Saya akan menambahkan kolom untuk semua detail yang biasa kita lihat di menu:


Nama Kolom Deskripsi
Id Kunci utama tabel
Item_name Nama pendek untuk item menu
Item_category_id Menandakan kategori masakan item:Italia, kontinental, dll.
Item_desc Berisi detail item, seperti daftar bahan atau cara item disiapkan (dipanggang, dikukus, dll.)
Item_image Gambar item yang mencolok.
cost Harga barang


Memecahkan Masalah Restoran Dunia Nyata dengan Data

Beberapa masalah sangat umum di dunia layanan makanan. Secara khusus, saya memikirkan waktu tunggu yang lama, baik untuk duduk di meja maupun untuk mendapatkan makanan Anda. Masalah-masalah ini seringkali dapat diselesaikan setidaknya sebagian dengan mengatur dan menggunakan data restoran dengan lebih baik.

Dalam pengaturan makan di tempat, beberapa hal lebih mengganggu pelanggan daripada harus menunggu lama untuk meja. Meminimalkan waktu tunggu pelanggan selama jam sibuk membutuhkan pengawasan ketat pada status masing-masing meja. Jika tidak ada manajemen meja dan staf yang tepat, waktu tunggu pelanggan mulai bertambah. Jika waktu tunggu terlalu lama, pelanggan dapat pergi dan mencari restoran lain yang akan melayani mereka dengan cepat.

Seseorang dapat mengatasi masalah ini dengan memperkenalkan perubahan tertentu pada model data ini. Perubahan ini akan:

  1. Tambahkan manajemen tabel waktu nyata, cara digital untuk mengelola ketersediaan tabel, pelacakan status, dan tingkat pemanfaatan.
  2. Kurangi waktu penyelesaian meja dengan mengukur efisiensi staf dan memungkinkan perencanaan tenaga kerja yang efektif – misalnya, dengan mengumpulkan kru kebersihan dan menugaskan staf ke sebuah meja atau sekelompok meja.
  3. Publikasikan status real-time dari masing-masing tabel ke layar pengelola, sehingga mereka dapat mengawasi aktivitas yang tertunda lama.

Masalah lain adalah membuat pelanggan menunggu makanan mereka. Untuk pelanggan dine-in dan takeaway, ini dapat dibantu dengan memberikan pembaruan status langsung ke restoran. Pemantauan status KOT individu sangat penting di sini. Saat KOT berlangsung di dapur, statusnya diperbarui di KOT meja. Mekanisme ini memberikan update real-time kepada pelanggan tentang status pesanan mereka.




Bagaimana Kami Dapat Membuat Model Data Restoran Ini Lebih Baik?

Ada begitu banyak ide inovatif yang muncul dari pemilik dan operator restoran untuk menarik dan mempertahankan pelanggan mereka. Misalnya:

  • Banyak yang menjalankan program loyalitas pelanggan. Ini mempertahankan akun loyalitas untuk pelanggan dan memberikan poin tamu untuk setiap kunjungan, pembelian, dll. Pengunjung dapat menguangkan poin ini kapan dan kapan mereka suka untuk berbagai hadiah (biasanya beberapa makanan gratis, persentase dari cek mereka, atau makanan gratis) .
  • Beberapa restoran membuat item menu mereka sedapat mungkin disesuaikan. Mereka mengizinkan pengunjungnya memilih bahan untuk salad atau pasta, atau mengganti makanan untuk memenuhi batasan diet tertentu.

Manajemen inventaris adalah area lain yang memainkan peran penting dalam membuat restoran menguntungkan.

Bisakah kita membangun kemampuan ini ke dalam model data ini? Bagikan pendapat Anda di bagian komentar di bawah.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa itu Percona DB

  2. Cadangkan dan Pulihkan Basis Data yang Diaktifkan FILESTREAM

  3. Bagaimana Model Layanan PAAS Bekerja?

  4. Mengisi Teradata dengan Data Uji Realistis De Novo

  5. Notasi Chen