我现在要对会员的教育经历进行存储和检索,为了存储和读取效率,我开始的打算是这样的:将会员所有的教育经历,包括学校、专业、时间等,放到一个<table></table>中,存入数据库的一个字段。
这样只用控制<table>的CSS就可以了,读取和存储都很方便。
但是朋友说,这样就没法检索了,或者说检索的效率非常低。建议我还是按原来的把每条教育经历逐条放到数据库保存。我的问题:
1)我的办法对检索性能的影响很大吗,这种数据是否不适合建立索引?
2)逐条存放并索引后,检索应该是很快,但是读取和存储的时候效率不好,有没有比较好的方案?
这样只用控制<table>的CSS就可以了,读取和存储都很方便。
但是朋友说,这样就没法检索了,或者说检索的效率非常低。建议我还是按原来的把每条教育经历逐条放到数据库保存。我的问题:
1)我的办法对检索性能的影响很大吗,这种数据是否不适合建立索引?
2)逐条存放并索引后,检索应该是很快,但是读取和存储的时候效率不好,有没有比较好的方案?
2)数据读取的频度最高,修改的频度为其1/20左右;
3)之所以想存储到一个字段,是因为对教育记录的修改也是特定的教育记录的修改,更多地使用了客户端修改,统一提交的方式。
前台使用javascript对记录进行增加、修改、删除(临时存储在一个<table>中),提交时一次提交了所有的修改。这样,如果是逐条存储的话,就要将该用户的所有教育记录删除,再写入所有的新记录,哪怕用户只改了一条记录。
因为修改发生的客户端,逐条对比修改已经变得不可行。所以用户每次修改,只能删除所有以前的,写入所有现在的。
personID ... reference personMasterData,
学校
专业
时间
etc
)
如果信息检索的需求也比较明确,建一个结构化的关系型辅助表,当教育记录被修改时,对该记录进行内容解析后填充到新表中,检索的时候用这个新表的数据,前端应用还用你的"<table>.."信息
如果信息检索的需求也比较明确,建一个结构化的关系型辅助表,当教育记录被修改时,对该记录进行内容解析后填充到新表中,检索的时候用这个新表的数据,前端应用还用你的" <table> .."信息你说的这个办法,是我现在正在考虑的。就是把呈现的和搜索的分表存储,呈现的数据仍放在一个字段中,搜索的数据放在一个从表中建索引。
这样可以比较好地解决读取和搜索的问题,就是数据存储了两次
教育记录的修改,更多地使用了客户端修改,统一提交的方式。
前台使用javascript对记录进行增加、修改、删除(临时存储在一个 <table> 中),提交时一次提交了所有的修改。 这样,如果是逐条存储的话,就要将该用户的所有教育记录删除,再写入所有的新记录,哪怕用户只改了一条记录。
因为修改发生的客户端,逐条对比修改已经变得不可行。所以用户每次修改,只能删除所有以前的,写入所有现在的。---为什么要都删除呢!
修改就用修改的存储过程啊!update不型吗!