一个产品可以有不同的尺寸,所以我添加了一对多的关系。但每个产品只能有一个唯一的尺寸,即,在多对多的大小不应重复。例如,产品X可以有大小1,2,3,但如果用户试图添加大小2已经存在,它应该失败(确实如此)但现在的问题是当添加产品Y时,添加大小1失败,因为它是唯一的,但它应该是每个变量唯一的,而不是全部。在对DB建模时有任何方法可以做到这一点,或者我必须添加一个手动检查,如果相同变量的大小已经存在,则抛出错误。
数据库-使用Prisma的Postgresql
一个产品可以有不同的尺寸,所以我添加了一对多的关系。但每个产品只能有一个唯一的尺寸,即,在多对多的大小不应重复。例如,产品X可以有大小1,2,3,但如果用户试图添加大小2已经存在,它应该失败(确实如此)但现在的问题是当添加产品Y时,添加大小1失败,因为它是唯一的,但它应该是每个变量唯一的,而不是全部。在对DB建模时有任何方法可以做到这一点,或者我必须添加一个手动检查,如果相同变量的大小已经存在,则抛出错误。
数据库-使用Prisma的Postgresql
2条答案
按热度按时间vd2z7a6w1#
在Prisma中,您可以如下建模关系:
它包含两个字段(productId和name)组合的唯一索引。因此,每个产品只能有唯一的命名size。示例-(productId - A,Size - 1),(productId - A,Size - 2)。添加另一个具有(productId - A,Size - 1)的记录将引发错误,但允许添加(productId - B,Size - 1)。
yc0p9oo02#
您可以在postgres中使用多个字段创建唯一索引。https://www.postgresqltutorial.com/postgresql-indexes/postgresql-unique-index/向下滚动一点,查看多个字段部分。
在不知道现有表结构的情况下,我不能有把握地说这段代码会工作,但您会需要这样的代码。