【问题标题】:Good database design for bilingual site: booleans vs meta tables?双语网站的良好数据库设计:布尔值与元表?
【发布时间】:2013-01-11 00:59:25
【问题描述】:

我正在制作一个包含游戏音乐会列表的网站。它将是英文和日文的。

音乐会在场地举行。我想用英语和日语存储有关场地名称和地址的数据。我还想允许为它们存储替代名称,例如“Konserthuset”和“斯德哥尔摩音乐厅”。前者是瑞典语的名字。语言是瑞典语这一事实在数据库中存储并不重要。但是如果是日语的话,我想把它存储起来。

所以一个场地可以有多个地址和名称。城市和国家只需要两个字段(和 id),英文名称和日文名称。

选项 1:

table Venue
  id (pk)
  cityId
  description

table VenueName
  venueID (fk)
  name
  IsJapanese (boolean)

table VenueAddress
  venueID (fk)
  address
  IsJapanese (boolean)

table City
  id (pk)
  name
  japaneseName
  countryId (fk)

table Country
  id (pk)
  name
  JapaneseName

选项 2:

 Venue
   id (pk)

 Information
   venueID (fk)
   infoTypeID (fk)
   text

 InfoType
   id (pk)
   name

这就是我所说的元表(正确的术语?)。相当灵活,但我想知道查询将如何。 InfoType 的示例可以是 EngName、JpnName、EngAddress、JpnAddress、EngCity、JpnCity 等。


我知道还有很多其他方法可以构建数据库。这些都是好的数据库设计吗?你有什么更好的解决方案?

【问题讨论】:

    标签: database database-design multilingual


    【解决方案1】:

    选项 1 很好,如果您将此作为练习。但从长远来看,选项 2 更加灵活 - 例如,当您决定要用德语、俄语或普通话表示场地名称时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      相关资源
      最近更新 更多