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

我对每种语言都有一个表,表中有4个字段。一个值,例如'the dog',词性(名词),缩写和拼写。我把所有的单词都收集到一个叫做“翻译”(或抽认卡)的表中,在这个表中,所有的单词都汇集在一起。还有另外两个表,但我想重点保存不同的抽认卡。
有了这种模式,我可以制作支持两种以上语言的抽认卡,而不需要做所有这些(翻译中的字段可以为空)。问题是,如果添加了新的语言,我必须在翻译中创建另一个表和一个新字段。实际上我不知道它是好是坏,但我认为这里有比这个更好的方法。提供了以下信息:
有人知道如何让这个数据库模式变得更好吗?
提前感谢!:)
发布于 2013-10-25 13:30:39
您的设置没有任何问题。
如果是我,我会将您的language表合并为一个,然后在该表中添加一个字段,该字段将是基于预设值的字段。这样做的好处是,有人想要向您的数据库添加一种额外的语言,他们不必添加新表和为新表添加编程。相反,人们只需要将一个条目添加到查找表中。
英语+法语+塔加罗语+德语表为一表:
vocab{ id value partofspeech缩写拼写语言}
language字段将根据另一个表进行填充:
语言{ language }
language表中的值为:法语、英语、塔加洛语、德语
稍后,当你决定学习西班牙语时,你只需将其添加到列表中即可。
当你学习一门特定的语言时,你只需要使用sql语句,比如:
where language=“法语”
https://stackoverflow.com/questions/13111869
复制相似问题