我正在开发有两种图书(电子书和PrintedBook)的图书馆管理系统。
我打算在同一个页面中同时使用电子书和打印本来进行搜索。
唯一的问题是我看到电子书和印刷书都是书。我应该创建一个图书实体,而PrintedBook和Ebook继承了Book。如果我这样做,通过使用IBookRepository,搜索能力就更容易了。如果没有,我必须连接两个表(电子书和PrintedBooks)。
请帮帮我。
发布于 2022-09-14 12:02:08
在持久层次上处理继承问题,特别是在谈到关系数据库时,可能是一个令人头痛的问题。首先,你应该问问自己,为什么这对你来说是个问题。
如果问题是由于在数据库查询中使用JOIN而导致的性能问题,您可能会看到称为单表继承的技术。基本上,您有一个包含所有图书类型(即PrintedBook和Ebook)的所有列的表。这样,JOIN**,就不必使用了,但是您需要牺牲一些存储空间**。
除此之外,混凝土表继承技术(正如您自己所描述的)没有其他方法来处理关系数据库中的继承问题。
如果您的应用程序变得太复杂,或者域模型与您的读取用例不兼容,那么您可以查看读取模型。Read-model帮助您将注意力集中在您的问题域上,而无需修改它,同时可以轻松地访问数据。这是一个非常复杂的主题,所以如果您想阅读一些有关读模型(或DDD实现问题/技术)的内容,我建议您阅读Vernon的实现领域驱动设计。
https://stackoverflow.com/questions/73715851
复制相似问题