Database design 设计具有两个用户相关属性的产品实体

Database design 设计具有两个用户相关属性的产品实体,database-design,Database Design,我的域中有一个产品实体,两个属性是Favorite和IsHidden 每个用户都可以选择某个要收藏的产品、隐藏的产品或以前没有的产品 我必须给用户一个产品列表,其中不包含“标记隐藏”的产品,并且在每个喜欢的产品附近都有一个“星” 在我的脑海中,出现了一张图片,上面有两张表“产品”和“产品用户” “产品\用户”模式可以是: ProductId, 用户ID, 我最喜欢, 伊希登 对吗 在查询期间,我必须查询不包括隐藏产品的产品表(因此我必须在之前查询产品用户表),然后标记每个喜爱的产品。当您执行DD

我的域中有一个产品实体,两个属性是Favorite和IsHidden

每个用户都可以选择某个要收藏的产品、隐藏的产品或以前没有的产品

我必须给用户一个产品列表,其中不包含“标记隐藏”的产品,并且在每个喜欢的产品附近都有一个“星”

在我的脑海中,出现了一张图片,上面有两张表“产品”和“产品用户”

“产品\用户”模式可以是: ProductId, 用户ID, 我最喜欢, 伊希登

对吗


在查询期间,我必须查询不包括隐藏产品的产品表(因此我必须在之前查询产品用户表),然后标记每个喜爱的产品。

当您执行DDD时,没有模式或表之类的内容,因为没有数据库。只有领域模型为特定的有界上下文建模问题

我认为您的问题显然是关于db模式的,因为在域级别,您可以拥有作为BoughtProductsCollection对象一部分的BoughtProduct对象的ProductImpression(不是最好的名称)属性。当然,这些都是基于猜测的建议,因为我不知道关于这个领域的很多细节

作为一个模式,我会说一些类似于你所想的东西。包含以下列的表:Id、ProductId、UserId、ProductImpression


此模式的好处是,您可以在将来添加更多状态,而无需更改模式。

是。关键是要认识到,
isfavorite
IsHidden
不是产品的属性——它们是产品和用户之间关系的属性。这就是Product_User所代表的。我已经用正确的标签重新标记了您的问题。好的,我必须开始思考与我之前所做的“贫血领域”不同的问题