我有一个购物车,我想将购物车信息存储到我的数据库中,但我不知道该怎么做,因为我无法检测到我的客户将添加多少商品到他们的购物车中。
我现在想到的是有一个非唯一的键作为购物车 ID。IE
ID / book / price / quantity
1/harry potter/19.90/1
1/deadly hollows/49.90/1
并且两个 id 1 都将构成一个完整的购物车。这种做法会不会有问题?
您应该有一个唯一的主键,但可以跨越多个列:
您可能可以使用 ID 和 book 作为主键,因为每个购物车不会有同一本书的 2 个副本,因为这只会更新数量,而不是添加新行。
非唯一密钥不是一个好的解决方案。
我会在购物车表中添加一个自动增量键,并将其用作“真正的”唯一键。
只需保持您的非唯一 ID 不变,这样您就可以将其用作 OrderID 来查看哪些行属于同一订单。
像这样:
UniqueID / OrderID / book / price / quantity
1/1/harry potter/19.90/1
2/1/deadly hollows/49.90/1
3/2/code complete/25.90/2