문제

I have a three objects: City, Channel, Genre. Relations: City has many Channels and Genres, and Channel and Genres may are in several Cities. Channels has many Genres, and but Genre may has many Channels.

I designed next database:

tblChannel:
  id,
  name

tblGenre:
  id,
  name

tblCity:
  id,
  name

// City and Channel MANY_MANY
tblCityChannel:
  id,
  cityId,
  channelId

// City and Genre MANY_MANY
tblCityGenre:
  id,
  cityId,
  genreId

// Channel and Genre MANY_MANY
tblChannelGenre:
  id,
  channelId,
  genreId

I am not sure that this correctly, who can specify my mistakes?

RESOLVE:

I redesigned my database by next:

tblChannel:
  id,
  name

tblGenre:
  id,
  name

tblCity:
  id,
  name

tblCityChannelGenre:
  id,
  cityId, // NOT NULL
  channelId,
  genreId

That layout solves next problems:

  1. I may create entites separately (channel may not have genre, genre may not have channels)
  2. City may have list of channels, which are not be defined by genre, and with genres conversely.
도움이 되었습니까?

해결책

your model is correct if it is a real m:m relationship between all 3 entities. however in the real world it is unlikely. most likely you have a hierarchy (like a tree) where you only have 2 m:m relationships and the third one is implied or you have a relationship between 3 tables so you need a table with 3 col key (not 3 tables with 2 col keys). try to understand you data better and you'll see what the correct model is. again, it could be just fine...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top