1

我遇到了一个有趣的 SQL 表(列出了列名):
From_TableName | From_Id | To_TableName | To_Id

据我了解,该表用于数据库中的所有表关系。数据库中没有很多数据(前面提到的表中超过 10000 行),所以,我想,性能并不那么重要。我不是 SQL 专家,所以我决定在这里问:我应该将此发送给 DailyWTF 还是在某些情况下这是一个可行的解决方案?

我的想法:我只是看不到这种方法有任何好处。当然,您的所有关系只需要一张表,但这算不上加分。而且我不确定当你创建一个新表时是否真的有更少的工作。除非你想让你的用户做任何事情,否则一定有某种验证逻辑(什么样的关系是有效的),你需要更新它。

4

4 回答 4

2

这很可能用于在应用层(希望)而不是在 sql 数据库本身中映射 Entity-like 对象。

即使不推荐,我也见过这些方法。

这可能会导致一些严重的性能问题,但正如您所说,数据库非常小。

我不认为这完全需要DailyWTF

于 2009-12-28T13:09:31.370 回答
1

我曾经在这样的系统上工作过,用户可以随时添加新的表和关系,而无需开发人员参与。

于 2009-12-28T13:11:46.030 回答
0

我在定制中看到过这样的设计ORM

如果出现以下情况,这是有道理的:

  • “表名”读作“类名”
  • 所有类实例都存储在单独的表中
  • 实际表包含类属性
于 2009-12-28T13:11:01.897 回答
0

使用单独的表来包含关系信息的方法并不少见。许多框架(例如 Rails)使用它们来存储多对多关系。但是,在这些情况下,通常每个关系只有一个表,表中只有两者的 ID。

话虽如此,我以前从未见过这种方法,它不是为每个关系设置单独的表,而是将所有关系收集在一个表中。与我刚才描述的方法相比,这种方法唯一真正的缺点是性能。好处是(对于某些人来说,无论如何)通过减少表来减少数据库中的混乱。

但不,绝对不值得 DailyWTF。我会质疑设计,但不会嘲笑它。

于 2009-12-30T00:31:02.150 回答