0
我在php中製作預訂系統。我目前正在就存儲數據庫項目的最佳方式提出一些建議。我現在有3個表:在我的系統中存儲數據以供檢索的最佳方式
Table 1 = Hire Stock (Primary Key = asset_id)
(包含特定的項目,如尺寸,重量,功耗
Table 2 = Project (Primary Key = project_id)
(包含項目開始日期,結束日期,客戶姓名字段)
Table 3 = availability (Primary Key = asset_id)
(每次一個項目被添加到一個項目,它被存放在這裏與它的項目ID)
我需要能夠搜索廣告資源中的每個項目,並在需要時檢查它是否可用於聘用。如果我必須遍歷每個比較日期範圍的項目,這將需要很長時間。有更好的方法來存儲數據嗎?更好的方法來搜索它?
租項目是*消耗*爲項目的持續時間?可用性聽起來更像AssignedToProject,似乎有點令人困惑 - 這是期望的目標嗎?此外,「比較日期範圍」可能是「在[基於指數的]範圍比較中使用SQL集操作」,因此它不一定會在這裏「花費時間」。更復雜的操作類型是找到哪些範圍*是空閒的,而不是找到範圍的重疊(或者在一組範圍內的單個範圍)。 – user2246674
編程的第一條規則:先讓它工作,然後再優化。我建議你先試試你的方法,看看錶演是否可悲然後再進行優化。同時試圖用你的代碼設計你的數據不是一個好主意:它創建了模型和代碼之間的依賴關係,所以當你不得不修改代碼時,你會開始擔心模型是否被破壞。最後用於文本搜索考慮使用Sphinx和其他去普通的SQL,只是施加更多的限制,就像用戶必須指定日期範圍一樣。 –