总结问题有:
1、词典数据库结构设计如何设计最科学?
2、用什么格式保存数据比较好,数组?还是XML?
几经周转,终于找到一个日汉词库,可是他的格式如下:
<单词块>
<单词>アース</单词>
<单词解释块>
<基本词义>
<单词项>
<单词原型>アース</单词原型>
<解释项>earth</解释项>
<单词词性>名</单词词性>
<解释项>(大)地,地球。</解释项>
<解释项>地线,电焊地线。</解释项>
<单词词性>名·自他サ</单词词性>
<解释项>接地。</解释项>
</ 单词项>
</基本词义>
</单词解释块>
</单词块>< 单词块>
<单词>加振力</单词>
<单词解释块>
<基本词义>
< 单词项>
<单词原型>加振力</单词原型>
<单词音标>
<日文发音>かしんりょく</日文发音>
</单词音标>
<解释项>助振力,激振力。</解释项>
</ 单词项>
</基本词义>
</单词解释块>
</单词块><单词块>
<单词>加重</单词>
<单词解释块>
<基本词义>
< 单词项>
<单词原型>加重</单词原型>
<单词音标>
<日文发音>かじゅう</日文发音>
</单词音标>
<单词词性>名·自他サ</单词词性>
< 解释项>加重。</解释项>
<例句>
<例句原型>負担を加重する</例句原型>
< 例句解释>加重负担。</例句解释>
</例句>
</单词项>
</基本词义>
</单词解释块>
</单词块>给个三个代表的单词说明。我应该建立什么样的数据结构来保存这些内容呢,先说说我的想法吧。话比较多,本人研究很久未果,希望达人支持下小弟。字段,字段解释
wid 主键,自增ID
word 存放单词
hiragana 存放单词日文发音
descript 存放单词释义,包括例句啥的,也就是<单词解释块>里的内容。我本来把所有东西都拆出来:单词词性、单词原型、例句等,但问题是有的单词,他有两个单词词性,一个词即可以做动词,也可以做名词,不同的词性有不性的解释和例句,所以我考虑直接融合在一起。只把唯一的部分挑出来。唯一的部分就是:单词、日文发音这两个。剩余的全部归到单词释义。现在问题出来了:
问题一、单词释义中要用什么格式保存那些内容呢?是直接上面的XML格式,还是要转换成数组?
1、直接上面的那种格式,那种格式是XML格式。对用户来说是很直观的,但是不方便调用,如果我只要其中的单词解释呢?当然如果没有其他选择办法的话,可以全部调用后再过滤。
2、如果转换成数组,我可以通过XML2ARRAY直接转换成数组,但是问题是,键的顺序丢失了,比如一个单词有两个词性:动词、名词。动词有三个例句,句词有一个例句,转换成数组后,你就不知道哪个例句是什么词性下的例句了。我给个数组:
  1. Array
  2. (
  3. [单词块] => Array
  4. (
  5. [单词] => アース
  6. [单词解释块] => Array
  7. (
  8. [基本词义] => Array
  9. (
  10. [单词项] => Array
  11. (
  12. [单词原型] => アース
  13. [解释项] => Array
  14. (
  15. [0] => earth
  16. [1] => (大)地,地球。
  17. [2] => 地线,电焊地线。
  18. [3] => 接地。
  19. )
  20. [单词词性] => Array
  21. (
  22. [0] => 名
  23. [1] => 名·自他サ
  24. )
  25. )
  26. )
  27. )
  28. )
  29. )问题二、这个词库文档的格式就是上面的那种,但是有30M,我要用什么方法来将这么大的数据导入到MYSQL呢?
1、我想到一个很傻很天真的方法,用文件分割器,将文件分割成100分,再用PHP的正则去匹配。也很慢,但是至少不会死机。求助大家:1、我的数据库结构需要改进么?之前没有做过类似的项目,我知道这种数据结构很不科学,有经验的朋友指点一下。
2、如何将大XML文件导入到MYSQL。