1

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

音乐会在场地举行。我想用英语和日语存储有关场地名称和地址的数据。我还希望允许为它们存储替代名称,例如“Konserthuset”和“Stockholm Concert Hall”。前者是瑞典语的名字。语言是瑞典语这一事实对于存储在数据库中并不重要。但如果是日本人,我想把它储存起来。

所以一个场地可以有多个地址和名称。城市和国家只需要两个字段(和 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 等。


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

4

1 回答 1

2

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

于 2013-01-28T21:27:00.367 回答