如果您使用关系数据库设计数据库模式作为名为Node的实体的持久性和CRUD层,是否存在创建名为Node的表和另一个名为NodeInstance的表的情况?
此问题已发布,试图阻止我的同事在设计数据库模式时犯下代价高昂的错误,其目的是作为我正在工作的iPad应用程序后端的存储,持久性和CRUD数据层并且还要避免制造将来会成为维护噩梦的错误和问题。因为我是在NDA下,所以我不能发布关于项目确切性质的任何细节,只是说我们在服务器上创建CRUD层的主要实体称为Node。因此,我建议正在后端工作的同事创建一个名为Node的类来表示Node对象,并在关系数据库的Node表中为Create操作插入行,并使用一个代表每个实例的新行。使用客户端应用程序以真正的ORM方式创建的节点。
但是,出于某种原因,我的同事似乎认为有一个用于持久化Node对象的表是错误的方法,正确的方法是创建一个Node表和一个NodeInstance表,并且并行维护两个表来管理Node实体的持久性更高效/更高效。由于我是一个ORM书呆子,也是一个DB模式的极客,我一直试图弄清楚在已知的宇宙中是否有任何行星使用2表方法来持久化并在1个实体上执行CRUD,一个好主意,但在所有情况下,似乎这增加了代码复杂性,更不用说它需要不必要的SQL连接,多个查询来维护数据完整性,原子事务问题和并发问题。但是,如果stackoverflow上有任何人可以帮助我理解为什么我的同事接近理智,那么我想要有一个开放的心态,并试图接受我的同事是对的观念。但是,在撰写本文时,我确信我的同事对ORM没有完全的理解,因此,考虑使用2个表来保持1个实体。请在这个问题上发挥一些智慧,我尊敬的stackoverflow同行和专家。