在数据库中添加产品投票

问题描述 投票:0回答:2

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

USERS
Id
Name

BASKETS
Id
UserId
Name

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

BASKET_PACKAGES
BasketId   
PackageId

PACKAGES
PackageId
Name

每个包都是一组预定义的产品:

PACKAGE_PRODUCTS
PackageId
ProductId

PRODUCTS
Id
Name

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

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

最好的方法是什么?

sql tsql
2个回答
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,但我决定不默认添加它,因为原则上它可以使用外键获得。

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


2
投票

创建如下的实体

BasketVote
BasketVoteId PK
BasketId    FK
ProductId   FK
UserId      FK
Vote

您也可以使用PackageProductId而不是ProductId,它们都基于您的要求。

© www.soinside.com 2019 - 2024. All rights reserved.