python在结构设计中的应用_为层次结构设计更好的数据库?

我已经创建了一个双语词典应用程序1,它目前非常简单,但我们将开始更全面地开发词条,我正试图找出最好的数据库结构。我以前参与过的字典项目都使用了xml(因为字典条目很大程度上是分层的),但是我需要使用数据库来完成

这是一个典型的中等复杂度条目的外观(简化了一点):dar

/dār/名词

住宅、住宅、住所

“那人进了房子。”

主页

“我们回家了。”

动词

转身

李亚民,“右转。”

转身

正如你所见,一个词可以有多个词性,所以“词性”不能简单地作为词条的属性,它必须与词义相关。每个词组可以有多个词义(编号),当然每个词义可以有多个近义词翻译。感官也可能有例句(可能不止一个),但并不总是这样。考虑到条目部分是如何相互关联的,我想出了以下结构,使用了五个表:Entry

-id

-headword

-pronunciation

-...

PartOfSpeech

-id

-entry (ForeignKey)

-pos

Sense

-id

-sense_number

-part_of_speech (ForeignKey)

-...

Translation

-id

-tr

-sense (ForeignKey)

-...

Example

-id

-ex

-ex_tr

-sense (ForeignKey)

-...

或者,换句话说:

^{pr2}$

这看起来很简单,对我来说很有意义,但我想知道在执行过程中是否会太复杂。例如,要显示一组条目,我需要编写几个嵌套的for循环(for e in entries → for p in pos → for s in senses → for tr in translations),而且都是反向查找!在

我甚至不认为我可以在Django管理中编辑整个条目(除非它允许您以某种方式对内联的内联进行内联)。不管怎样,我都要构建一个编辑器界面,但是当你想的时候,能够在管理站点上检查东西是很好的。在

有更好的方法吗?我觉得我错过了一些聪明的东西。在

谢谢,

凯伦

1如果你好奇的话:tunisiandictionary.org。在其简单的当前形式中,它只有两个表(Entry,Sense),翻译只是用逗号在一个字段中描述。这很糟糕。

2有两个原因:1)因为它是我用Python/Django编写的web应用程序;2)因为我讨厌xml。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值