是一个"加入表" SQL JOIN的结果,或多对多之间的表

时间:2016-05-04 00:50:49

标签: sql join semantics

这是一个关于正确"命名事物的问题"。具体来说,您如何区分:

  1. "之间"多对多关系中的表格(例如guardclass Level(object): wall_list = None npcs = None def __init__(self, x, y, width, height, color): self.npcs = pygame.sprite.Group() self.wall_list = pygame.sprite.Group() self.add_npc(x, y, width, height) def add_npc(x, y, width, height): npc = Npc(x, y) #and width and height if that's what they are for npc.move = 0 self.npcs.add(npc) def collision_check(player_rect): for npcs in self.npcs: if npcs.rect.colliderect(player_rect) #remove and call self.add_npc with new co-ords users
  2. 在SQL users_questions期间创建的(临时)表(例如' SELECT * FROM users INNER JOIN users_questions.user_id ON users.id WHERE users_question.question_id = 37016694;`)

2 个答案:

答案 0 :(得分:9)

许多数据库设计人员在第一种意义上使用术语 join table :实现实体之间的多对多关系。它也称为联结表关联表等。更多信息:https://en.wikipedia.org/wiki/Associative_entity

我从未听说过使用过的第二种感觉。 (但是,嘿,我不会得到太多。:-)如果您正在编写文档或教学,我建议您保留 table 这个词来表示实际的物理表格。避免在结果集中使用 table 一词,除非您通过说虚拟表或某些此类短语来限定它。这样你的读者和学生就不会浪费时间在你的模式中找到这些非真实表的定义。

答案 1 :(得分:0)

从关系角度来看,{{1}}表(解析多对多关系的表)真实物理表。否则它不会在请求之间存活。在我看来,术语"加入表"由MVC" Code First"创造。忽略数据库领域中的物理实体的开发人员,尤其是在DbContext中未显示的情况下。

在我看来,我们应该再次尊重关系现实。

请帮助我Codd