2011-07-27 145 views
0

我有一個ASP.NET MVC3 C#4.0項目。將json保存到mysql數據庫中

這管理着Person類型的對象,實際上我將保存到MySQL數據庫上名爲person的DataTable。

該項目有一個搜索引擎,可以從關鍵字全文數據表中找到人員。 當我得到相應的人的id後,我有一個邏輯做一個GetPerson(id),但是這會創建一個查詢到人表,這個查詢和對象Person的創建很慢。

如果我保存在人員表中的數據旁邊,那麼我在該表中有另一個具有Person對象的完整json字符串的列?然後,GetPerson(id)只獲得json字符串,然後做一個Serialize,我得到Person對象?

這是一個很好的做法嗎?

+0

您可以發佈GetPerson(id)的代碼和上下文運行緩慢的代碼段嗎?這可能只是需要優化。存儲對象的序列化形式是多餘的,並且強制您將sql更新命令的數量加倍(每次更改字段時都必須更新JSON)。 –

回答

2

這聽起來有點令人困惑,你想將json保存到數據庫中並對其執行全文搜索?我不確定你爲什麼想要這樣做。爲什麼不在數據庫中有一個與json字段中找到的字段相關的表,並用新的json請求更新表。因此,如果JSON包含(名稱,電話號碼......),則可以檢查表中是否存在名稱(如果它確實返回與該名稱相關的人員ID),否則可以將新人員插入表中...也許我只是讀錯了。

+0

不,全文搜索位於關鍵字表中。 json字符串,將只爲一個GetPerson(id),我認爲它會很快,如果只有我得到與該id的json字符串,並作爲一個Person對象序列化它。 –

+0

但你知道你會想要搜索/排序/任何人的東西 - sampwing是正確的。 – n8wrl

+0

這是更快,更優化的方法 – Haroon