0

在数据库上,我保存用户购买的篮子:

USERS
Id
Name

BASKETS
Id
UserId
Name

每个篮子都是一组预定义的包:

BASKET_PACKAGES
BasketId   
PackageId

PACKAGES
PackageId
Name

每个包都是预定义产品的选择:

PACKAGE_PRODUCTS
PackageId
ProductId

PRODUCTS
Id
Name

在每个篮子中,我需要为每个产品定义一个 VOTE 值。

每个用户可能在不同的场合(例如,在不同的篮子中)对产品进行不同的投票。

最好的方法是什么?

4

2 回答 2

2

创建如下实体

BasketVote
BasketVoteId PK
BasketId    FK
ProductId   FK
UserId      FK
Vote

您也可以使用 PackageProductId 代替 ProductId,这完全取决于您的要求。

于 2018-05-03T18:33:14.413 回答
1

我会创建表格:

create table basket_product_vote (
  basket_id int not null,
  product_id int not null,
  voted_on timestamp not null,
  vote_value int not null,
  constraint fk1_basket foreign key (basket_id) 
    references basket (id),
  constraint fk2_product foreign key (product_id) 
    references product (id)
);

可以包含,user_id但我决定默认不添加它,因为原则上它可以使用外键获得。

此外,您可能希望创建额外的索引来加快搜索速度。

于 2018-05-03T18:48:52.613 回答