一个网站的诞生- MagicDict开发总结3 [日语字典数据结构]
首先感谢各位ACCESS数据库大牛在上一篇文章的评论中,对我的批评和帮助。这样的话,上一篇文章也没有白写了。
的确,一直在Mainframe上做开发,ACESS只是入门级别的水平,学习的道路还很长很长,需要 大石头 这样的高手的指教和提点。
这篇文章,可能不会涉及到任何技术面的东西。主要介绍一下日语单词的特征,就当一个日语知识的简单普及了。[园子里面日语好的朋友应该有很多]
日语在线字典,可能是所有字典里面最复杂的。
日语,分为平假名,片假名和汉字:
平假名是从中国偷师过来的,一般用于书写日本原来的文字,日语的平假名表示了一个单词的发音。一个假名对应一个发音。
例如 [はな] 就是一个片假名,这个词语怎么读,看了平假名就知道读法了。(读作 Ha[は] Na [な]。)
片假名和平假名的作用一样,只不过,写为片假名是表示这个单词是外来语。
比如[テスト]这个词语,来自于英语的Test,读音是 テ[Te] ス[Su] ト[To]。平假名和片假名是一一对应的,本质上没有什么区别,唯一的区别是用片假名书写的表示外来语。(当然,你也可以把片假名写成平假名,テスト写为てすと则不能体现出这个词语是外来词汇了)
日语里面也有汉字,在文章,报纸等正式的书面资料里面,可以使用汉字的地方,都应该使用汉字。
例如 「勉強」这样的词语,一般都是以汉字的形式出现的。(平假名:べんきょう)
不同的汉字可以发音相同(平假名相同)
相同的汉字也可以发音不同。。。。
这样的话,表示一个日语单词,就需要这样的一个结构
汉字 平假名 片假名 外来语
-------------------
勉強 べんきょう
てすと テスト Test 外来语
花 はな 相同读音,不同汉字
鼻 はな
人 ひと 相同汉字,不同读音
人 じん
此外,还有一种叫罗马字的东西,平假名和片假名是用日本文字来表示读音的,罗马字是以拉丁字母的形式来表示读音的。
平假名的 はな 用罗马字表示为 HA[は]NA[な],这样表格又扩展了。
汉字 平假名 片假名 外来语 罗马字
--------------------------------
勉強 べんきょう BENKIYOU
てすと テスト Test TESUTO 外来语
花 はな HANA 相同读音,不同汉字
鼻 はな HANA
人 ひと HIDO 相同汉字,不同读音
人 じん JIN
接下来的话,要考虑表格的主键了。
主键应该是没有任何意义的东西,例如身份证号码那样,应该只是一个代码。但是这个代码也不应该是完全和所代表记录无关的东西,比如GUID,或者自增ID那样[关于这点欢迎提出不同意见]。身份证号码里面包含出身地,生日等信息。
在这个表格里面,注意到平假名是各个单词都共有的,所以,我使用的方法是根据平假名来生成主键。
1。每个假名拥有一个两位的代码 例如
あ01 い02
2。取每个单词的前两个假名,构成一个4位的代码,如果单词本身只有一个假名,则4位代码的后两位则为00。我们称他为主代码
3。所有单词在编号之前,根据片假名,先做排序操作,同样主代码的单词,根据其位置,拥有一个4位的辅助代码。
4。最后,主代码+ 辅助代码就构成了主键。
主键 假名 汉字
15000012 ご 後
15000013 ご 五
15020001 こい 鯉
15020002 こい 濃い
15020003 こい 故意
15020004 ごい 語彙
15020005 こいあい 濃藍
15020006 こいしい 恋しい
需要说明的是,主代码是单词的固有属性,是固定的。
辅助代码在每次重新生成数据库的时候可能会变动。[每月通过工具,自动重新生成一次数据库]
所以说主键在一个时间点是固定的东西,但是在不同时间点,则是动态的。
一个人做网站太苦了,有人愿意加入网站开发吗?日语单词检索网站,ASPNET开发的。
有兴趣的写信给我 root#magicdict.com [convert # to @ ]
或者加MSN mynightelfplayer@hotmail.com
网站地址 http://www.magicdict.com/