如何解决表中仅剩一个字段-在解决本地化时
当试图将要翻译成几种语言的表字段移动到* _i18n表中时,我遇到了这样的情况:我的表(作者,abstract_book,出版商)只剩下1个字段。我的老师说,拥有不带任何字段但ID的表是一种不好的做法。有什么更好的方法吗?
解决方法
我要说的是作者的名字(或那个人的名字)始终是相同的,但是后来我想起儒勒·凡尔纳在某些西班牙语国家真的被称为朱利奥·凡尔纳,我们称呼ФёдорМихайловичДостоевскийDostojewski先生用德语翻译,用英语翻译陀思妥耶夫斯基。
尽管仅ID表看起来有些奇怪,但它们仍可用于引用完整性。例如,您不能有一本书的作者ID不存在。但是您仍然可以拥有没有任何语言输入的实例。例如。第一本书是由作者2和3编写的,但我们不知道书的标题或作者的名字。那是这种设计的最大缺点。
因此,我将列添加到表中以进行标识。有以下三种方法:
- 将真实姓名(作者姓名,书名,出版者姓名)添加到表格中。例如,作者为“Достоевский”。
- 以默认语言(例如英语)将名称添加到表格中。例如,作者是“陀思妥耶夫斯基”。使用这种方法,可以确保默认语言的数据完整。 (尽管其他语言的数据可能会有差距。)
- 向该表添加对i18n表行的引用(再次使用原始语言或默认语言)。但是,这有一个问题,您希望引用不能为空,因此将交叉引用这些表。这需要延期的约束,而这些约束在MySQL中不可用。
无论您喜欢这三种方法中的哪一种,它们都具有相同的功能:表具有ID和名称/标题。因此,当缺少I18N条目时,将具有默认值。而且您可以检测到错误。如果作者1在作者表中被称为“朱尔斯·凡尔纳”,而他的法语名称为“朱尔斯·凡尔纳”,其英语名称为“玛丽·雪莱”,那么您知道哪个条目不正确:-)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。