mysql表的关系应该是一对多或一对一

时间:2018-04-30 03:24:25

标签: mysql

我正在为网站设计数据库。我有4个帖子表。第一个表是主表,无论帖子类型如何,都应为每个帖子分配新的ID和标题。另外三张桌子是汽车,房屋和家具桌子。他们每个人都应该只有与之相关的帖子。我对主表和其他表之间的关系类型有点困惑;应该是一对多还是一对一。也就是说,在汽车表中,有价格,细节,制造商,类型,汽缸,燃料等的列。所以,在主表中,如果帖子的类型是汽车,那么,这个帖子应该在汽车表中用唯一制造商分配一个id。因此,这是一对一的。并且cars表中的每个帖子在主表中具有对应的post id(一对一关系)。而每个制造商可能在主表中有很多帖子。因此,我认为这是一对多的关系。这与其他表格的情况相同。

请我不需要任何文档,因为我阅读了所有mysql官方文档,我知道所有关系类型的理论前景,但当我转向实际部分时,我变得有点困惑。

2 个答案:

答案 0 :(得分:1)

如果你想知道X和Y之间的关系是一对一,多对一还是多对,请问自己这两个问题:

  1. 一个X可以有多个Y'
  2. 一个Y可以有多个X'
  3. 现在算上Yesses:

    • 0:One-one
    • 1:多人
    • 2:很多人

    例如,制造商可以拥有多辆汽车,但一辆汽车只有一家制造商,因此很多。从你的描述中我不清楚邮政/汽车的关系。一个帖子可以有多辆车吗?汽车可以出现在多个帖子中吗?

答案 1 :(得分:0)

你正好在轨道上,我建议你将所有帖子存储在帖子表中作为自动增量ID 。无论何时获得任何类型的帖子,都可以使用合适的类型在帖子表中创建一个条目。还可以在邮政桌上进行制造。

现在拿这个帖子ID并根据类型在汽车/房子/家具表中进行相应的输入,在这些表中分别添加价格等附加细节。

所以现在post表成为所有帖子的中央存储库 - 取决于许多类型和制造商。您可以稍后相应地添加/删除帖子类型。使其具有可扩展性。

此外,您在制造商和邮政之间存在多对一关系的关系方面是正确的(因为一个制造商可以多次发布),以及帖子与其类型之间的一对一关系(因为任何一个帖子都是时间点只属于一种类型)。