簡體   English   中英

座位巴士預訂PHP和MySQL

[英]Seats Bus Booking PHP and MySQL

我有另一種情況。
我有27個座位的公共汽車
那么,如果人們選擇座位4,那么沒人會坐那個座位4。

我的問題:

  1. 設計數據庫如何包含27個席位? 我猜想用PHP循環到27
  2. 表格如何顯示,選擇表格中包含未預定的座位?
  3. 如何防止其他人坐同一席位?

謝謝。

數據庫:具有一個BusType表,其屬性將包括座位數,費用等。 擁有一個BusBookedSeats表,該表將保持與所討論的巴士的FK關系,並保持其剩余和/或預訂的座位總數。

表格:查詢數據庫並獲取總座位數-已預訂的座位數。 添加進一步的驗證以顯示座位的位置。

預防措施:如果查詢返回的值大於0(在這種情況下表示“接受”),則警告用戶已采取該方法,並告知他們改坐其他席位。 甚至不向他們展示座位。

對於您的數據庫:

  1. 您有一張桌子,上面有公共汽車和可用的座位號
  2. 您有一張預訂桌
  3. 您有一張桌子,它與特定巴士上特定座位的預訂有關系

如何顯示可用座位:

  1. 查詢所有預留座位
  2. 畫一張公交車的照片並標記所有保留的座位

如何防止重復預訂:您需要某種交易程序,但是很難告訴您何時鎖定座位以及何時解鎖(例如,用戶一段時間未響應)。 通常,您僅在最后一步保留它。 因此,確保您沒有太多步驟,或者確保選擇是最后一步之一,所以可以減少沖突的數量。

這些確實只是一些非常基本的技巧,但是整個問題太復雜了,簡而言之。 如果您有任何特定問題,則可能需要單獨詢問。

從數據庫角度來看,根據我對您的要求的了解,我會在以下幾行中提出一些建議:

  1. 總線表-包含每個單獨總線的條目。 有一列指示此巴士的座位容量。

  2. 用戶表-包含每個可以預訂公交車座位的用戶的條目。

  3. BusUser Table-交易表,其中包含公共汽車的座位記錄,例如:如果公共汽車X的座位數為27 =座位數,則該表將具有27條記錄-每個記錄都具有與之相關的相應座位號。

從UI角度,您將顯示總線用戶內容。 當用戶選擇UI上的記錄之一時,會將用戶與BusUser表中的該記錄相關聯。 BusUser-將具有一列,指示與該總線實例關聯的用戶。

多數民眾贊成。 希望能為您提供一些指導。

確保您具有某種主鍵,其中涉及總線離開的時間等,以及每條總線的唯一標識符(復合主鍵)。 您只能擁有公交車的唯一標識符,因為這將限制每輛公交車只能乘坐一次:)

我認為巴士的27個座位應由您的應用程序處理。 也許,為每輛公共汽車先插入27行,並在有人預定座位時更新。 這樣,您可以讓用戶也許也選擇他們想要的座位。 (應該通過您的GUI完成)。

當然,您應該為每個席位都有一個狀態,您可以使用該狀態來查找是否已預訂。

這是一個非常基本的想法,我沒有提供任何圖表或類似的東西。 希望我不會破壞您自己設計數據庫的機會:)

在Sane中建議使用數據庫謊言是一個好主意。 停止重復預訂確實沒有那么困難-您只需要選擇一種方法即可。

  1. 排隊系統-當人們點餐時,您可以將他們添加到隊列的尾部,然后使用單獨的腳本將人們從頭頂拉開。 這樣您就可以穩定地評估每個訂單了。

  2. 數據庫級別-如果要使用MySQL,則最好使用支持事務的InnoDB之類的引擎(簡介: http : //www.databasejournal.com/features/mysql/article.php/3382171/Transactions -in-MySQL.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM