我正在创建一个包含游戏音乐会列表的网站。它将是英语和日语。
音乐会在场地举行。我想用英语和日语存储有关场地名称和地址的数据。我还想允许为它们存储替代名称,例如“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
这就是我所说的元表(正确的术语?)。相当灵活,但我想知道查询将如何。 InfoTypes的示例可以是EngName,JpnName,EngAddress,JpnAddress,EngCity,JpnCity等。
我知道我还有很多其他方法可以构建数据库。这些都是良好的数据库设计吗?你有什么更好的解决方案?
答案 0 :(得分:2)
如果您将此作为练习,则选项1没问题。但是从长远来看,选项2更灵活 - 例如,当您决定用德语,俄语或普通话来表示场地名称时。