Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Phục vụ Đồ ăn Ngon (và Dữ liệu) - Mô hình Dữ liệu cho Nhà hàng

Thiết kế cơ sở dữ liệu đóng vai trò gì trong việc điều hành một nhà hàng? Mô hình dữ liệu cho cơ sở dữ liệu nhà hàng có thể trông như thế nào? Tìm hiểu trong bài viết này.

Một nhà hàng phục vụ mọi người với thức ăn làm sẵn. Đây là một loại hình kinh doanh đang phát triển mạnh trên toàn thế giới, và thường có rất nhiều bùng phát. Mọi người cảm thấy rất thoải mái khi đến nhà hàng và họ bắt đầu mong đợi nhiều lựa chọn khi đến bữa ăn tiếp theo của họ.

Chỉ riêng tại thành phố New York, có hơn 24.000 cơ sở ăn uống. Chúng bao gồm các món ăn mang đi (tức là pizza, cửa hàng phụ, đồ ăn mang về của Trung Quốc), cửa hàng bán đồ ăn nhanh, quán cà phê và nhà hàng ăn uống cao cấp. Câu nói sau đây rất phù hợp với ngành nhà hàng; thực tế đó là tuyên bố sứ mệnh toàn cầu của họ:

Hãy làm thật tốt những gì bạn làm để họ sẽ muốn xem lại và đưa bạn bè và gia đình của họ đi cùng.

Walt Disney

Tại sao Nhà hàng Cần Cơ sở dữ liệu?

Quản lý nhà hàng là một công việc không hề đơn giản. Khi nói đến việc theo dõi và hoàn thành các công việc hàng ngày, ngay cả chủ nhà hàng giàu kinh nghiệm nhất cũng có thể có nhiều hơn những gì họ có thể dễ dàng quản lý. Để điều hành một nhà hàng có lãi đòi hỏi phải quản lý hàng tồn / kho, giảm thiểu lãng phí, quản lý bàn (đặc biệt là trong giờ cao điểm), duy trì thực đơn thân thiện với khách hàng, thực hiện đơn đặt hàng hiệu quả và giám sát nhân viên nhà hàng. Đó là khá nhiều!

Một hệ thống quản lý nhà hàng phải thực hiện hầu hết các hoạt động này với sự can thiệp thủ công tối thiểu. Nó phải cung cấp cho người quản lý thông tin chính xác để họ có thể giữ cho khách hàng hài lòng. Điều này có nghĩa là thực hiện những thay đổi thích hợp đối với thực đơn và thậm chí là cách thức hoạt động của nhà hàng.

Mô hình dữ liệu nhà hàng

Bài viết này là tất cả về thiết kế mô hình dữ liệu chính thức cho một nhà hàng (ăn tối hoặc mang đi). Chúng tôi cũng sẽ giải quyết hai vấn đề lớn mà những người kinh doanh nhà hàng gặp phải trong các hoạt động hàng ngày của họ. Cuối cùng, chúng tôi sẽ nghĩ về những thay đổi cần thiết để xây dựng những khả năng đó vào một hệ thống hiện có.

Khi chúng ta đi sâu vào mô hình dữ liệu, tôi sẽ đề cập đến một số vai trò người dùng nhất định. Những vai trò này thực sự dành cho các nhân viên, chẳng hạn như:

  • Người quản lý - Quản lý khoảng không quảng cáo, bảng lương, lập kế hoạch cho nhân viên và các chỉ số cho nhà hàng
  • Máy chủ - Xếp chỗ cho khách và chỉ định máy chủ cho các bảng
  • Người phục vụ (còn được gọi là người phục vụ) - Đưa các món ăn của khách hàng đến nhà bếp và giao món đã chuẩn bị cho khách hàng
  • Người giám sát (còn được gọi là bếp trưởng hoặc đầu bếp trưởng) - Giám sát các công việc trong nhà bếp và giao nhiệm vụ cho đầu bếp
  • Nấu ăn - Đọc chi tiết đơn đặt hàng nhận được từ người giám sát, chuẩn bị thực phẩm và thông báo cho người giám sát khi món ăn đã sẵn sàng
  • Busboy - Theo dõi bảng nào đang được sử dụng; dọn dẹp bảng và cập nhật trạng thái của chúng khi cần thiết

Mô hình dữ liệu cho kinh doanh nhà hàng phải có các đặc điểm cơ bản sau:

  • Quản lý KOT (Mã thông báo đặt bếp)
  • Quản lý KOD (Giao đơn hàng nhà bếp)
  • Quản lý Menu

Hãy xem xét chi tiết từng tính năng này.

Quản lý

KOT (Mã thông báo đặt hàng)

Đây là phần quan trọng nhất trong mô hình dữ liệu của chúng tôi:tất cả là về việc thu thập thông tin chi tiết về đơn đặt hàng từ khách hàng thông qua nhiều kênh khác nhau. Tại sao lại có nhiều kênh khác nhau? Bởi vì có một số cách mà đơn đặt hàng có thể được thực hiện - trực tuyến hoặc thông qua ứng dụng di động, gọi điện thoại hoặc thông qua bồi bàn hoặc nhân viên khác. Bất cứ khi nào khách hàng đặt một món ăn, một KOT (Mã thông báo đặt hàng nhà bếp) sẽ được tạo ra. Cuối cùng, KOT sẽ được chuẩn bị bởi nhân viên nhà bếp.

Tôi sẽ tạo một bảng, kot , để nắm giữ các chi tiết đơn đặt hàng sơ bộ. Bảng này có các cột sau:


Tên cột Mô tả
Id Khóa chính cho bảng này
order_channel_id Kênh mà đơn hàng được đặt.
dine_in_table_sitting_id Bảng nơi bắt nguồn đơn hàng. Cột này sẽ chỉ được điền trong trường hợp đơn đặt hàng ăn tối.
order_in_time Dấu thời gian khi đơn hàng được đăng nhập vào hệ thống
order_out_time Dấu thời gian khi nhân viên bếp giao đơn hàng
staff_id ID của người thu thập đơn đặt hàng. Trong trường hợp gọi món, cột này chứa ID của người phục vụ thu thập đơn đặt hàng. Trong các cài đặt khác, ID này sẽ là 'SYSTEM'.
kot_status_id xác định trạng thái hiện tại của KOT.


Tôi muốn chỉ ra rằng một đơn đặt hàng được thu thập từ một bảng tại một thời điểm được gắn thẻ dưới một kot_id . Nếu sau cùng một bảng đặt hàng nhiều mặt hàng hơn, hệ thống sẽ tạo một kot_id khác và gắn thẻ tất cả các mặt hàng mới này theo ID đó. Cuối cùng, tất cả kot_ids cho cùng một bảng sẽ được cộng với nhau trong hóa đơn cuối cùng.

Quản lý KOT yêu cầu các bảng giao dịch và tĩnh bổ sung, đó là:

  • order_channel - Bảng này chứa thông tin chi tiết về các kênh nhà hàng sử dụng để chấp nhận đơn đặt hàng. Các ví dụ phổ biến bao gồm trực tuyến, ăn tối, mang đi (mang đi), v.v.
  • dine_in_table_sitting - Đây là một bảng giao dịch lưu trữ dữ liệu về mức độ sử dụng của bảng. Các cột của nó bao gồm dine_in_table_id , dine_in_time , dine_out_time , num_person_sittingcustomer_id . Ngay sau khi người dẫn chương trình chỉ định khách hàng vào một bảng và nhập thông tin vào hệ thống, một bản ghi sẽ được chèn vào bảng này. Để tìm nạp trạng thái chiếm dụng hiện tại của các bảng tại bất kỳ thời điểm nào, đây là bảng sẽ được sử dụng.

    Giả sử bạn muốn xây dựng tính năng này. Đây là câu SQL sẽ cho bạn biết trạng thái có chỗ hiện tại cho tất cả các bàn của nhà hàng:

    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 - Bảng này chứa tất cả các trạng thái có thể có cho KOT: đơn đặt hàng đã nhận , đặt hàng trong quá trình , đơn đặt hàng đã giao , v.v.
  • kot_menu_item - Bảng giao dịch này lưu trữ chi tiết của tất cả các mặt hàng trong KOT. Nó cũng xác định mối quan hệ giữa KOT và menu_item . menu_item_idquantity các trường so với kot_id cho biết mặt hàng theo đơn đặt hàng và số lượng cần thiết.

Quản lý KOD (Giao đơn hàng nhà bếp)

Phần lớn việc một nhà hàng thực hiện tốt như thế nào là nhờ vào việc quản lý KOT bên trong nhà bếp. Thông thường, một người giám sát thu thập KOT từ những người phục vụ, những nhân viên khác hoặc một hệ thống trực tuyến. Sau đó người giám sát giao các món trong thực đơn cho một hoặc nhiều đầu bếp. Đầu bếp chuẩn bị đồ và giao cho quản đốc. Sau đó người phục vụ hoặc một nhân viên khác thu order và giao cho khách.

Nhưng đó không phải là tất cả những gì quản lý KOD bao gồm. Quản lý tài nguyên, dự trữ nguyên liệu, cập nhật thường xuyên hàng tồn kho còn lại và yêu cầu hàng tồn kho mới khi cần thiết cũng là một phần trong hoạt động hàng ngày của nhà bếp. Người giám sát đóng một vai trò quan trọng trong hoạt động liên tục của nhà bếp, đặc biệt là trong giờ cao điểm. Một hệ thống được coi là "thông minh" hoặc "thông minh" nếu nó có thể tái tạo các chức năng công việc của người giám sát - điều này gần như là không thể ở hầu hết các nơi.

Để xây dựng mô hình cho phần quản lý phức tạp này, tôi sẽ tạo một bảng khác, có tên là KOD . Bảng này bao gồm các cột sau:


Tên cột Mô tả
Id Khóa chính cho bảng này
kot_menu_item_id Biểu thị hạng mục KOT mà nhân viên bếp hiện đang làm
staff_id Lưu trữ ID của người đầu bếp đang chuẩn bị món này
kod_status_id Hiển thị trạng thái hiện tại của mặt hàng


Quản lý menu

Thành phần này cũng quan trọng như quản lý KOT và KOD. Thực đơn - cả trong cách trình bày trực quan và các món ăn mà nó cung cấp - là một trong những điều đầu tiên thu hút khách hàng. Vì vậy, mọi chủ nhà hàng đều cố gắng giữ cho thực đơn của họ hấp dẫn nhất có thể.

Hãy tạo một bảng khác để chứa thông tin chi tiết về menu. Tôi sẽ thêm các cột cho tất cả các chi tiết mà chúng ta thường thấy trên menu:


Tên cột Mô tả
Id Khóa chính của bảng
Item_name Tên viết tắt của một món trong menu
Item_category_id Biểu thị danh mục ẩm thực của món:Ý, lục địa, v.v.
Item_desc Chứa chi tiết mặt hàng, chẳng hạn như danh sách thành phần hoặc cách chế biến mặt hàng (nướng, hấp, v.v.)
Item_image Hình ảnh hào nhoáng của mặt hàng.
cost Chi phí của mặt hàng


Giải quyết các vấn đề của nhà hàng trong thế giới thực với dữ liệu

Một số vấn đề cực kỳ phổ biến trong thế giới dịch vụ ăn uống. Đặc biệt, tôi đang nghĩ đến thời gian chờ đợi lâu, cả để ngồi vào bàn và lấy đồ ăn của bạn. Những vấn đề này thường ít nhất có thể được giải quyết một phần bằng cách tổ chức và sử dụng dữ liệu nhà hàng tốt hơn.

Trong không gian ăn uống, ít điều gì khiến khách hàng khó chịu hơn là phải đợi lâu mới có bàn. Giảm thiểu thời gian chờ đợi của khách hàng trong giờ cao điểm đòi hỏi phải theo dõi chặt chẽ tình trạng của các bàn riêng lẻ. Nếu không có cách quản lý bàn và nhân viên hợp lý, thời gian chờ đợi của khách hàng bắt đầu tăng lên. Nếu thời gian chờ đợi quá lâu, khách hàng có thể rời đi và tìm một nhà hàng khác phục vụ họ một cách nhanh chóng.

Người ta có thể giải quyết mối quan tâm này bằng cách đưa ra những thay đổi nhất định đối với mô hình dữ liệu này. Những thay đổi này sẽ:

  1. Thêm tính năng quản lý bảng theo thời gian thực, một cách số hóa để quản lý tính khả dụng của bảng, theo dõi trạng thái và tỷ lệ sử dụng.
  2. Giảm thời gian xoay vòng bàn bằng cách đo lường hiệu quả của nhân viên và cho phép lập kế hoạch lực lượng lao động hiệu quả - ví dụ:bằng cách tập hợp một đội dọn dẹp và phân công nhân viên vào một bàn hoặc một nhóm bàn.
  3. Xuất bản trạng thái thời gian thực của từng bảng lên màn hình của người quản lý để họ có thể theo dõi mọi hoạt động đang chờ xử lý từ lâu.

Một vấn đề khác là khiến khách hàng phải chờ đợi món ăn của họ. Đối với cả khách hàng dùng bữa và mang đi, điều này có thể được giúp đỡ bằng cách cung cấp thông tin cập nhật trạng thái trực tiếp cho quán ăn. Theo dõi tình trạng của các KOT cá nhân là rất quan trọng ở đây. Khi KOT tiến hành trong nhà bếp, trạng thái của nó được cập nhật trong KOT bàn. Cơ chế này cập nhật theo thời gian thực cho khách hàng về trạng thái đơn đặt hàng của họ.




Làm cách nào để chúng tôi có thể cải thiện mô hình dữ liệu nhà hàng này tốt hơn?

Có rất nhiều ý tưởng sáng tạo mà các chủ nhà hàng và nhà điều hành đang nghĩ ra để thu hút và giữ chân khách hàng của họ. Ví dụ:

  • Nhiều chương trình khách hàng thân thiết chạy. Những điểm này duy trì tài khoản khách hàng thân thiết cho khách hàng và tặng điểm cho khách cho mỗi lần ghé thăm, mua hàng, v.v. Thực khách có thể rút ra số điểm này bất cứ khi nào họ thích để nhận được nhiều phần thưởng khác nhau (thường là một số đồ ăn miễn phí, phần trăm giảm giá trên séc hoặc một bữa ăn miễn phí) .
  • Một số quán ăn làm cho các mục trong thực đơn của họ có thể tùy chỉnh được hết mức có thể. Họ cho phép thực khách chọn nguyên liệu cho món salad hoặc mì ống hoặc họ thay thế thực phẩm để đáp ứng các hạn chế nhất định trong chế độ ăn uống.

Quản lý hàng tồn kho là một lĩnh vực khác đóng vai trò quan trọng trong việc tạo ra lợi nhuận cho nhà hàng.

Chúng ta có thể xây dựng những khả năng này vào mô hình dữ liệu này không? Chia sẻ suy nghĩ của bạn trong phần bình luận bên dưới.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mô hình dữ liệu đại lý bất động sản

  2. Cách sử dụng “Like” trong SQL

  3. Cách đăng nhập hoạt động trên máy chủ được liên kết (Ví dụ T-SQL)

  4. Các loại SQL JOIN

  5. Tất cả những gì bạn cần biết về các tiêu chuẩn mã hóa cho các truy vấn SQL