對於提出問題所需的詳細信息的長度不滿。使用JOIN(?)有意返回比結果更多的結果
有四張桌子(與研究有關,與體育設施沒有任何關係)。他們如下:
1)假設第一個表是網球場列表,並且假設有數百個可能性(不僅僅是室內和室外)。
-------------
TENNIS_COURTS
ID Type
-------------
1 Indoor
2 Outdoor
…
2)我們想要注意哪一天他們可以出租。爲了防止多餘的行,我們可以列出單獨的日子(例如,只是一年的第二天,輸入爲「From:2」,「To:2」)或塊(例如,從第24天到第25天,輸入如「From:24」,「To:25」)。在這個例子中,室內場地是最容易獲得的,而室外場地只有兩個日期範圍(冬季顯然不切實際)。
---------------------------
DAYS_AVAILABLE
ID ProductID From To
---------------------------
1 1 2 2 《 Indoor
2 2 24 25 《 Outdoor
3 2 140 170 《 Outdoor
4 1 280 300 《 Indoor
5 1 340 345 《 Indoor
…
3)我們還想添加一個屬性列表,這些屬性隨着時間的推移會變得相當長。所以不是將它們合併到字段規則中,而是有一個屬性表。
-----------------------
ATTRIBUTES
ID Attribute
-----------------------
1 Age of Player
2 Time of Day
3 Outside Temperature
…
4)最後,我們希望在租賃法庭時考慮考慮因素(或因素)的列表。在這個例子中,傷害風險適用於室內和室外場地,但能見度和溫度僅適用於室外。
--------------------------------------------------
CONSIDERATIONS
ID ProductID AttributeID Effect Link
--------------------------------------------------
1 1 1 Risk of injury www… 《 Indoor
2 2 1 Risk of injury www… 《 Outdoor
3 2 2 Hard to see www… 《 Outdoor
4 2 3 Gets cold www… 《 Outdoor
…
利用上面的各個表,我們想創建一個包含至少一個排在範圍內的每個日期,從當年的第一天開始(其中法院是一個綜合的保存視圖可用)到今年的最後一天(法院可用)。我們也希望重複列出的每一天的適用注意事項。
基於以上示出的數據時,它看起來像這樣:
----------------------------------------
CONSOLIDATED VIEW
Day Court Consideration Link
----------------------------------------
2 Indoor 《 from DAYS_AVAILABLE
2 Indoor Risk of injury www… 《 from CONSIDERATIONS
24 Outdoor 《 from DAYS_AVAILABLE
24 Outdoor Risk of injury www… 《 from CONSIDERATIONS
24 Outdoor Hard to see www… 《 from CONSIDERATIONS
24 Outdoor Gets cold www… 《 from CONSIDERATIONS
25 Outdoor 《 from DAYS_AVAILABLE
25 Outdoor Risk of injury www… 《 from CONSIDERATIONS
25 Outdoor Hard to see www… 《 from CONSIDERATIONS
25 Outdoor Gets cold www… 《 from CONSIDERATIONS
…
然後,我們可以查詢統一視圖(例如,「SELECT * FROM CONSOLIDATED_VIEW其中天= 24」),以產生一個簡單的輸出像:
Court: Indoor
Available: 24th day
Note: Risk of injury (www…)
Hard to see (www…)
Gets cold (www…)
我們想從一個統一的視圖產生,因爲一旦數據被存儲,它不會頻繁改變上述所示的例子中,我們很可能不會在同一時間,無論如何查詢單天。網絡客戶端更有可能將所有行提取到一個大型數組(TBD基於確定總大小),然後將其呈現給用戶而無需進一步的服務器交互。
我們可以單獨使用SQL查詢生成CONSLIDATED_TABLE還是需要執行其他編碼(例如PHP或NodeJS)?