1

如果您使用关系数据库将 DB 模式设计为​​用作名为 Node 的实体的持久性和 CRUD 层,是否会在任何情况下创建一个名为 Node 的表和另一个名为 NodeInstance 的表?

发布此问题是为了阻止我的同事在设计数据库架构期间犯下代价高昂的错误,其目的是充当我正在开发的 iPad 应用程序后端的存储、持久性和 CRUD 数据层,并且以避免产生将来会成为维护噩梦的错误和问题。因为我处于 NDA 之下,所以我无法发布有关项目确切性质的任何详细信息,只能说我们在服务器上为其创建 CRUD 层的主要实体称为节点。因此,我建议在后端工作的同事创建一个名为 Node 的类来表示 Node 对象,并在关系数据库的 Node 表中插入行以进行 Create 操作,

但是,出于某种原因,我的同事似乎认为使用 1 个表来持久化 Node 对象是错误的方法,正确的方法是创建一个 Node 表和一个 NodeInstance 表,并且并行维护 2 个表来管理Node 实体更高效/高性能。由于我有点像 ORM 书呆子和 DB 模式极客,我一直试图弄清楚已知宇宙中是否有任何行星使用 2 表方法在 1 个实体上持久化和执行 CRUD,将是一个好主意,但在所有情况下,这似乎都增加了代码复杂性,更不用说它需要不必要的 SQL 连接、多个查询来维护数据完整性、原子事务问题和并发问题。然而,如果 stackoverflow 上有任何人可以帮助我理解为什么我的同事的方法是理智的,那么我想保持开放的心态,并尝试接受我的同事是正确的观念。但是,在撰写本文时,我确信我的同事对 ORM 没有完全了解,因此正在考虑使用 2 个表来持久化 1 个实体。尊敬的 stackoverflow 同行和专家,请在这件事上发挥一些智慧。

4

0 回答 0