我已经创建了一个双语词典应用程序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。

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

  1. python删除字符串中重复字符_从Python中删除字符串标点符号的最佳方法

    似乎有一个比以下更简单的方法: 1 2 3import string s ="string. With. Punctuation?" # Sample string out = s ...

  2. python 替换array中的值_利用Python提取视频中的字幕(文字识别)

    我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...

  3. python在工作中怎么用_如何用python在工作中“偷懒”

    原标题:如何用python在工作中"偷懒" "偷懒还能干完活,才是本事 " 有些朋友在工作中会有这样的困惑:明明我从早忙到晚,为什么得到的评价还不高? 要知道, ...

  4. python操作mysql中的表_带你了解什么是Python操作MySQL数据库

    写这篇文章主要是为了介绍Python操作MySQL数据库,并结合相应的实例带你更加深入了解.文中的代码实例很详细,对大家有一定的参考学习价值. 1.什么是pymysql? PyMySQL是在Pytho ...

  5. python统计句子中单词个数_【python统计单词数量】作文写作问答 - 归教作文网

    如何用python统计一个txt文件中某个单词出现的次数 1.首先,定义一个变量,保存要统计的英文文章. 2.接着,定义两个数组,保存文章中的单词,以及各单词的词频. 3.从文章中分割出所有的单词,保 ...

  6. 在python的解释器中使用函数_浅析Windows 嵌入python解释器的过程

    这次主要记录在windows下嵌入 python 解释器的过程,程序没有多少,主要是头文件与库文件的提取. 程序平台:windows10 64 bit. Qt 5.5.1  MSVC  2013 32 ...

  7. python导入模块中的对象_详解Python项目开发时自定义模块中对象的导入和使用

    背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中的对象:2)对于大型系统开发,一般不会把所有代码放到单个文件中,而是根据功能将其分类并分散多个模块中,在编写小型项目时 ...

  8. python提取cad中的文字_[python]提取PPT中的文字(包括图片中的文字)

    python是一门很强大的语言,因为有着丰富的第三方库,所以可以说Python是无所不能的. 很多人都知道,Python可以操作Excel,PDF·还有PPT,这篇文章就围绕Python提取PPT中的 ...

  9. python删除字符串中重复字符_删除字符串中重复字符python 用CAD怎么画DNA反向

    用CAD怎么画DNA反向平行双螺旋结构绘螺旋线时,用选扭曲,确定顺时针. 画双头螺旋线时,第二根螺旋线底圆起点与第一根螺旋线底圆起点,可用角度分隔如180°.python去除文本中重复的字符串可有可无 ...

最新文章

  1. 微软摊开 AI 高分作业,在线求抄
  2. 文巾解题 344 反转字符串
  3. algorithm头文件下的常用函数--习题
  4. @Html.ValidationSummary()的使用
  5. Request的getHeader()和getParameter()的区别
  6. SQL优化:你真的知道国家字符集的性能影响吗?
  7. 【转】当你伤心时一定要读的50句话
  8. 汇编语言王爽第四版 实验四(包括对【bx】,loop详解)
  9. Spring整合activityMq
  10. 计算机网络自顶向下WireShark实验:IP
  11. 谷歌学术高级搜索技巧
  12. Java工程师待遇怎么样?
  13. layui 加载loding图标
  14. 低功耗广域网络和ISM频段:物联网的里程碑还是公地悲剧?
  15. 坦克世界未能连接至更新服务器,坦克世界连接到更新服务器失败,小猪教您怎么解决坦克世界连接到更新服务器...
  16. 2018新版个税计算器---Python实现
  17. 服务网关 Zuul基本使用
  18. 详细介绍@GetMapping和@PostMapping的区别
  19. 《马克思主义基本原理》复习重点
  20. 勤哲web配置教程_勤哲Excel服务器技术支持|Excel服务器常见问题解答

热门文章

  1. java简单手机脚本编写,Java认证:Java平台上更简单的脚本编写方法
  2. python 验证码识别 阿里云_python实现验证码识别功能
  3. 破解安卓图案锁屏密码
  4. 《计算机图形学》实验 4
  5. 佳能R5相机断电0KB字节DAT视频文件无法打开播放怎么数据恢复MP4
  6. 国产PIE-SAR软件
  7. 一文带你层层解锁「文件下载」的奥秘
  8. 中断服务函数能不能带形参和返回值
  9. 计算机基础---电脑的原理
  10. win10+1060显卡安装anaconda+CUDA10.1+pytorch+cuDNN+tensorflow-gpu