我有三种类型的问题:


词汇(用question:answer对表示)
语法(由question:[list, of, answers]表示)
收听(由question:answer表示-其中值为.oog / .wav音频文件)。


由于不确定字典是否可以存储音频,因此在这里避免使用key:value术语。

我的问题:

如何将这组表建模为易于管理的设计?

languages         lessons        lesson_types
=========         ========       ============
lang_id           lesson_id      lt_id
lang_name         lang_id        lt_name
                  lesson_name    lt_desc
                  lt_id


这就是简单的部分。

我难以理解的部分是如何在python中序列化不同类型的对象,以克服每种类型的问题提出的差异。在严格的,仅限DBMS的方法中,我将为每种类型的问题使用一个单独的表(由于BLOB拥有音频,语法问题最多可以包含十几个部分来描述其时态,性别等)。我很高兴看到sqlalchemy能够简化数据库的结构。

我该如何设计一个可以处理字典以及可串行化且对questions友好的音频格式的sqlite3表?

最佳答案

表问题(question_id, question_text),表答案(question id, answer_text)和表Audio_Answers (question_id, audio_blob)有什么问题? (即:每个Answer行包含一个问题ID和一个答案。如果一个问题具有多个答案,则该问题的答案表将有多个条目。这与Audio_Answers表的使用方式完全相同。)

这将使您能够以最大的灵活性对所有三种类型的问题进行建模。具有单个或多个答案的问题可以以完全相同的方式处理。这两个答案表包含所有答案,每行一个答案。

10-07 22:03