1

ゲーム音楽コンサートの一覧サイトを作っています。英語と日本語の両方になります。

コンサートは会場で行われます。会場の名前と住所のデータを英語と日本語で保存したい。また、「Konserthuset」や「Stockholm Concert Hall」などの代替名を保存できるようにしたいと考えています。前者はスウェーデン語での名前です。言語がスウェーデン語であるという事実は、データベースに保存するのに重要ではありません。でも日本人なら保存してほしい。

したがって、1 つの会場に複数の住所と名前を含めることができます。都市と国には、英語名と日本語名の 2 つのフィールド (および 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 に答える