首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL多个MANY_TO_MANY关系

SQL多个MANY_TO_MANY关系
EN

Stack Overflow用户
提问于 2014-05-07 03:28:10
回答 1查看 57关注 0票数 1

我有三个对象:城市,频道,流派。关系:城市有许多渠道和类型,渠道和类型可能在几个城市。渠道有很多类型,但类型可能有很多渠道。

我设计了下一个数据库:

代码语言:javascript
复制
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

我不确定这是否正确,谁能具体说明我的错误呢?

解析:

接下来我重新设计了我的数据库:

代码语言:javascript
复制
tblChannel:
  id,
  name

tblGenre:
  id,
  name

tblCity:
  id,
  name

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

这个布局解决了接下来的问题:

  1. 我可以单独创作(频道可能没有体裁,流派可能没有频道)
  2. 城市可能有一系列的渠道,这些渠道不是由体裁来定义的,而是与类型相反的。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-07 03:43:03

您的模型是正确的,如果它是一个真实的m:m关系的所有三个实体。然而,在现实世界中,这是不可能的。最有可能的情况是,您有一个层次结构(如树),其中您只有2m:m关系,而第三个关系是隐含的,或者您在3个表之间有一个关系,所以您需要一个具有3个col键的表(而不是3个带有2个col的表)。试着更好地理解你的数据,你会看到正确的模型是什么。再说一次,可能会很好.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23508201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档