2011-07-27 139 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