• 一个网站的诞生 MagicDict开发总结4 [如果有阶层数据库就完美了]


    说到数据库,大家第一反映就是表格,2维的表格,一个维度代表属性,一个维度代表对象。

    某某对象的某某属性是多少多少。2维表格大概就是这样描述数据和存放数据的。

    不过,其实生活中,很多事物的相互联系并非是 2维的,更多的阶层形状的。

    一个世界里面有很多国家,一个国家下面有很多省,每个省下面可能有市,也可能没有[直辖市]。

     

    其实,字典这样的东西,就是一个典型的阶层数据。

     每个词汇就是一个顶层对象,平假名,片假名,罗马字是属性,

             第二层是中文解释,一个词语可能有若干个中文解释。

                    第三层是例句,每个例句有日语例句和中文解释两个成员。

    [当然这个只是最简单的字典模型,没有考虑到各种扩展情况。]

    老实说,如果数据不多的话,这样的东西,最好放到XML里面,然后用那个LQ来做。那样子的话,效率应该是最高的。

    同时,XML里面的数据可读性也非常好,它如实的还原了真实领域数据的相互关系,而不是靠数据库的外键来维持这种一对多的关系。特别是在数据库出现局部逻辑错误[不是指2进制层面的物理损坏]的时候,阶层数据库影响非常小。(关系数据库把一个对象放在不同的分散的表格里面,一个地方出问题了,可能影响到所有的其他表格,阶层性的话,一个对象的所有东西都放在一起,高度内聚,要出问题也就只出现在自己这里)。

        一直在做OS390上的大型机开发,IBM有一套IMSDB的数据库系统,那个就是传说中的DB2的前辈,它是阶层数据库,不过它只是用在大型机上面(就是那种大的柜子里面的家伙)。可惜,Windows平台对于大数据,好像没有什么阶层数据库的解决方案。(DB2-最新版本貌似有,不过。。。个人网站。。。。,或者那位大哥知道阶层结构的平民数据库)没有办法,老老实实做成多个数据库,用主键,外键链接起来吧。。。

     

    【上图是项目第一阶段的数据库关系图,手工绘制的。。。。】

    大家是怎么看待阶层结构数据库的呢,对于大规模的阶层数据库有什么好的解决方式吗?请大家畅所欲言啊。

    有兴趣的写信给我 root#magicdict.com   [convert # to @ ]

    或者加MSN mynightelfplayer@hotmail.com

    网站地址 http://www.magicdict.com/

     
  • 相关阅读:
    Bash 命令的解析
    vscode ctrl+P 打开文件后固定文件
    Linux 使用 tree 命令生成文件目录结构
    分享一款“暗黑系列”Idea主题插件Material Theme【改】
    linux上搭建svn服务器并设置自启动
    springBoot项目里获取resource目录下的文件(可用于各种linux服务器部署)【我】
    linux下svn与apache整合搭建
    liunx设置utf-8
    Fiddler抓包,并修改请求数据
    解决vue+el使用this.$confirm,不能阻断代码往下执行
  • 原文地址:https://www.cnblogs.com/TextEditor/p/2062104.html
Copyright © 2020-2023  润新知