【发布时间】:2017-01-20 17:25:47
【问题描述】:
我正在 Django 中制作一个应用程序,可以管理我的 GRE 单词和每个单词的其他详细信息。所以每当我向它添加一个我学过的新单词时,它应该按字母顺序在数据库中插入这个单词及其详细信息。同样在检索时,我想从数据库中提取特定单词的详细信息。
效率是主要问题。
我应该使用 SQLite 吗?我应该使用文件吗?我应该使用 JSON 对象来存储数据吗? 如果使用文件是最有效的,我应该实现什么数据结构? Django中是否有任何功能可以有效地做到这一点? 每个单词都有 - 意义、句子、图片、词根。我应该如何存储所有这些信息?
如果答案不是 Django 特定的并且谈论算法或数据库类型,那很好。
【问题讨论】:
-
我的第一个问题是为什么要在插入时保留字母顺序?这意味着您将自动需要修改该插入之后的所有表记录。您可以检索从数据库中排序的结果。对于 django,您可以使用 order_by("field_name")。就术语或算法而言,除非您使用专门的数据结构,否则这种方法很慢。看看用什么样的数据结构来创建数据库索引。
-
在搜索字段中,当有人键入一些字母时,我希望显示所有以这些字母开头的单词,就像在所有字典中一样。当然我会读到它。
-
你不应该关心数据库如何存储数据;这完全是它自己的关切。你应该只关心数据是如何返回给你的,你可以通过排序来控制。
-
@DanielRoseman 我有点离题了,你应该知道并关心索引是如何工作的(尽管对于这个用户和应用程序可能不是完全必要的)
-
@The_coder 扩展了答案