此刻,我的設計正在努力達到某個程度,並且我可能會讓它按照我擁有的方式正常工作,但是我對它感到不滿意,因爲我覺得它應該會更好。設計一個類似但不同的數據庫
本質上,我有一個系統,您可以創建文檔。通過這種方式,您可以選擇要創建的文檔類型並顯示錶單。然後將數據添加到表單中,並生成文檔。
我在Laravel工作,通過模型完成工作。我發現自己爲每個文檔創建了一個新模型,但我不認爲這是最好的方法。這是我的數據庫外觀的一個小例子
所以它的核心是項目。我進入我的系統並創建一個新項目。通過一個項目,我現在可以爲這個項目創建文檔。所以說,我從一個選擇框中選擇項目簡介,形式顯示給我一息尚存,我可以輸入
- 項目角色
- 項目數據
- 交付
- 預算
從本質上講,其三個文本字段和一個標準輸入字段。如果我從選擇菜單中選擇報告文檔,則必須輸入此文檔的數據,這是一對常規輸入,幾個文本字段和一個日期。
因此,雖然它們都是文檔,但他們期望不同的數據,這就是爲什麼我爲每個文檔創建模型的原因。
這個問題存在於幾個方面。首先,如圖所示,我希望允許支持文檔與生成的文檔一起上傳。我有這個doc_upload表。所以一個文檔可以有一個或多個doc_uploads。
現在回到MVC結構,在我的DocUpload模型中,我不能說DocUpload屬於ProjectBriefDoc和ProjectReportingDoc,因爲它只能屬於一個Model。因此,我現在的設計方式是,我不僅要爲每個文檔創建一個新模型,還必須爲每個文檔創建一個新的上傳模型。
隨着更多的文件被添加,我可以看到這成爲一個噩夢來管理。
我覺得我所追求的是一個更通用的模型,它可以處理不同類型的文檔。我的奮鬥關係到我需要爲每個文檔捕獲的不同類型的數據,以及我如何能夠將其融入到我的設計中。
我知道我現在有一個可以工作的設計 - 但有些東西告訴我這是一個壞主意。真的,我只是在尋求建議,以便我可以更好地設計這一點,同時考慮到每個文檔需要不同的輸入,並且每個文檔都需要允許文件上傳。
非常感謝
非常明確和可擴展 – DaveTheRave