我有三种类型的问题:
词汇(用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表的使用方式完全相同。)
这将使您能够以最大的灵活性对所有三种类型的问题进行建模。具有单个或多个答案的问题可以以完全相同的方式处理。这两个答案表包含所有答案,每行一个答案。