2015-04-23 43 views
0

我是新應用程序設計人員,我試圖從設計和未來可擴展性角度考慮。假設我們從三組人開始,他們使用更新爲彼此寫筆記。目前我的桌面焦點部分有這樣的列:什麼是更高效?使用正則表達式或在MySQL中創建新列以獲取相同信息

sampleId | officeNote | labNote | billingNote ...

當一個新條目被,我的Java程序包括此格式每個sampleId和哪個音符類別有人寫到:

[MM/dd/yy HH:mm - user] userNote\r\n 

現在,如果我想生產的概況表我的GUI應用程序,以便任何團隊都可以查看註釋並理解樣本出現問題的原因。這縮短表將有格式的東西接近這個:

Header: Office Note 
---------- 
Sample Id | Date Created | User | First Line | Last Updated Line 

Header: Billing Note 
------------------- 
Sample Id | Date Created | User | First Line | Last Updated Line 

Header: Lab Note 
------------------- 
Sample Id | Date Created | User | First Line | Last Updated Line 

知道最後的結果表是怎麼....這將是明智的多個列,以支持「創建日期」和「用戶」每每筆記組?或者我會在mysql或java中創建一個正則表達式來解析創建的第一個日期和用戶。

讓我知道我還能提供什麼問題。是的,一旦筆記被解決,行就會被刪除。

回答

3

將它分成幾列會更清晰。在我看來,如果你總是需要解析它,應該避免使用總是具有相同結構的字段。它看起來像拒絕使用關係數據庫。

此外,我還沒有測試過它,但使用正則表達式顯然不太可能。您可以使用索引。例如,如果您需要顯示與某個用戶相關的記錄或從確定的時間間隔開始,那麼如果您分別在User字段和Date Created上進行索引,則速度會更快。

最後,您可能需要在將來進行復雜查詢,因此您必須直接在查詢中使用regex。這並不總是支持!因此,您可能必須在您的Java代碼中「完成」它,這很慢且相當難看。即使數據庫的功能是可用的,但不要忘記它使其變得非常複雜和緩慢,因此它可能成爲開發和維護應用程序的噩夢。

相關問題