MySQL为不同的对象创建关系表

时间:2014-11-13 12:48:02

标签: mysql database

所以,我陷入了困境。

这是解决这个问题的最佳方法:

我处理了几十个不同的表,每个表代表一个不同的实体,并且至少有一个唯一的主键。 (在表本身的上下文中是唯一的,这意味着不能保证一个表中的一个唯一值不存在于另一个表中)

我的任务是创建一个中间表,在其中我建立表中一个'对象'与另一个表的关系。 (类似于父/子关系的东西)。

其中一些表可能有数百或数千行,但主要表可能有一百万左右。

在大多数情况下,两个“对象”之间的关系是一对一的。但也有一些特殊情况,其中一个对象可能链接到两个或多个对象。

所以我提出了两种不同的方法:

表1)创建一个表格,我们知道有一个子/父关系

-----------------------------------------------------
| Child | ParentIDa | ParentIDb | ... | ParentIDn |
-----------------------------------------------------

表2)创建一个表来表示 children / parents 的关系:

-----------------------------------------------
| CHILD | Typeofchild | PARENT | TypeofParent |
-----------------------------------------------

这些表是独家的。存储在一个表中的关系可能不存在于另一个表中。换句话说,对于 TypeA TypeN 的对象的关系,可以任意地存储在这两个表中的一个中。然后应该对两个表中的一个表中的搜索决定进行硬编码。

我更愿意使用第二个选项 。因此,所有数据都在一个表中,但这样我最终会得到一个5000万+表,这可能会导致一些性能问题。

因此,通过使用第一个表格,我可以更有效地存储数据。

鉴于你的成熟,我是否走在正确的道路上?哪种溶剂可能更适合储存,保持良好的性能?

注意:在表2中,“ Typeof ”是保留ID身份所必需的。

THX,

FKK03D057

0 个答案:

没有答案