在数据库中,我正在保存用户购买的篮子:
USERS
Id
Name
BASKETS
Id
UserId
Name
每个购物篮都是预定义的套餐选择:
BASKET_PACKAGES
BasketId
PackageId
PACKAGES
PackageId
Name
每个包都是预定义产品的选择:
PACKAGE_PRODUCTS
PackageId
ProductId
PRODUCTS
Id
Name
在每个购物篮中,我需要为每个产品定义一个VOTE值。
每个用户可能会在不同的场合以不同的方式对产品进行投票,例如,在不同的篮子中。
最好的方法是什么?
答案 0 :(得分:2)
创建如下所示的实体
BasketVote
BasketVoteId PK
BasketId FK
ProductId FK
UserId FK
Vote
您也可以使用PackageProductId而不是ProductId,这完全取决于您的要求。
答案 1 :(得分: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
,但我决定默认添加它,因为原则上它可以使用外键获得。
此外,您可能希望创建额外的索引以加快搜索速度。