Flashcard语言项目的数据库模式/逻辑

时间:2012-10-28 18:46:26

标签: mysql database database-schema

我正在创建一个应用程序(使用MYSQL),用于通过简单的抽认卡学习单词/语言。真正令我头疼的是如何构建模式(表)。对如何使它变得非常简单有很多想法,我继续这样构造它。

database schema link to the image

我有一个每种语言的表格,有4个字段。一个值,例如'the dog',词性(名词),缩写和拼写。我收集了一个名为“翻译”(或抽认卡)的表格中的所有单词,它们汇集在一起​​。还有另外两个表,但我想专注于保存不同的抽认卡。

使用这种模式,我可以制作支持超过2种语言的抽认卡,而无需完成所有这些(翻译中的字段可以为空)。问题是,如果添加了新语言,我必须在翻译中创建另一个表和一个新字段。我实际上不知道它是坏还是好,但我认为这里有比这更好的方法。有了这些信息:

有没有人知道如何使这个数据库架构更好?

提前致谢! :)

1 个答案:

答案 0 :(得分:0)

您的设置没有任何问题。

如果是我,虽然我会将您的语言表合并为一个,然后在该表中添加一个字段,该字段将基于预设值。优点是有人想要为您的数据库添加额外的语言,他们不必添加新表并为新表添加编程。相反,只需要在查找表中添加一个条目。

英语+法语+标签+德语表到一个表:

翻译{ ID 值 partofspeech 缩写 拼字 语言 }

将根据另一个表填充语言字段:

语言{ 语言 }

语言表中的值为: 法国 英语 他加禄语 德国

稍后当您决定学习西班牙语时,您只需将其添加到列表中即可。

当您学习特定语言时,您只需使用sql语句,例如:

其中language =“French”

相关问题