我需要一些指導,然後再花幾個小時進行重組,然後發現這不是一個很好的方法。我的課程是針對學區的一對一倡議。我有一個所有任務,學生和電腦的數據庫。我正在構建一個面向對象的設計,以使編碼更加統一(以及所有其他優點)。此應用程序將用於指導用戶完成重啓和筆記本電腦檢查過程。這是我的困境。1到OOP中的很多關係php
學生(對象)可以有一個或兩個當前的任務(一個是另一個永久性的借用者)。我最初建立了一個學生對象,一個賦值對象和一個設備對象。然後,在創建學生時,我們使用查找工廠來查找學生未完成的當前作業。然後,我從學生構造中循環這些內容,並創建一個賦值對象數組,每個賦值對象查找設備信息。
這很好,並獲得我需要的所有信息,但我發現很難處理,因爲有一個賦值對象的數組,並有一定的規則遵循邏輯。
必須先打開租借者分配(在原始計算機發送問題時給出的分配)。而且,一般來說,很難確定此數組中的哪個賦值對象具有我需要知道的屬性。
因此,我的IDEA(這可能不是一個好主意)就是將其分解爲1對1對1對1的關係。學生分配到設備的分配。
然後,如果我需要知道,如果學生有一個借用的任務,我可以做一個函數內部的分配對象,然後調用student->assignments->hasLoanerAssignment()
你怎麼看網上?
謝謝你的迴應。我不能改變數據庫模式而不會破壞已經在生產中的其他程序。賦值表包含所有的賦值,並且有一個名爲'loaner'的字段,它是boolean(tiny int)來表示一個Loaner賦值或一個永久賦值。 – Bil1 2013-03-07 16:57:15
真的沒關係。您仍然可以在PHP級別使用繼承。 – naomi 2013-03-07 19:27:32
是的,這是事實。我認爲這是一個可接受的解決方案。然後我會在學生對象中存儲布爾函數,如hasLoanerAssignment和hasPermanentAssignment,它會檢查$ loaner和$ permanent是否爲空。謝謝 – Bil1 2013-03-07 19:37:56