我想检查是否 如果有任何方法删除页面中的记录,而不删除数据库中的记录? 我正在购物车,并希望让用户能够查看他们过去的交易。 我退房后有什么方法可以删除购物车中的记录吗?并且还能够查看过去的交易。
我还没有做任何代码, 只是寻求建议
答案 0 :(得分:0)
是。您可以拥有包含产品的数据库,第二个包含您的用户,第三个数据库可以将用户ID与他们购买的产品ID相关联。 您永远不能从数据库中删除项目。您可以包含状态信息,例如“有效/无效”,而不是实际删除它。
修改强> 的
当您在购物车中有产品时,通常会将列表保存在Cookie中,暂时通过浏览器或javascript或其他方式保存(如果您的国家/地区禁止使用Cookie,则必须搜索替代品)。购买完成后,购物车列表将保存在数据库中,并且cookie或其他任何内容都会被清除。您不会从数据库中删除任何内容。
示例强>
用户/买家数据库
+--------+----------+
| idUser | nameUser |
+--------+----------+
| 1 | Antony |
| 2 | Betty |
| 3 | Carl |
+--------+----------+
产品数据库
+-----------+--------------+-------+-----------+
| idProduct | nameProduct | price | available |
+-----------+--------------+-------+-----------+
| 1 | Apple dozen | 10.00 | yes |
| 2 | Banana unity | 20.00 | yes |
| 3 | Cherry kg | 30.00 | yes |
+-----------+--------------+-------+-----------+
有效/无效示例
请注意,您不需要删除任何记录。您可以为上面示例的产品创建类似available
的选项。所以你可以把它设置为是或否。因此,您只需编写前端代码即可显示可用的产品yes
,而后端可以查看所有产品。这非常有用。如果您的产品有数十个信息并且您删除了产品,但它只能在3周内无法使用,那么您将失去很多时间删除和输入并再次保存所有内容。将它设置为显示或不显示更好。 (有些商店只选择显示所有内容,但在不可用时提醒)。
请记住,这不是一切规则。始终寻找最佳性能。如果你有一个拥有10k不可用产品的数据库,这些产品永远不会再次可用,而你只有2个可用的itens,那么这将是一个小的nosense保持所有这些记录活着。
关于历史价格
价格历史数据库
+--------+--------+-----------+-----+----------+----------+
| idItem | idUser | idProduct | qty | subtotal | date |
+--------+--------+-----------+-----+----------+----------+
| 1 | 1 | 1 | 2 | 20 | 10/10/13 |
| 2 | 1 | 2 | 1 | 20 | 10/10/13 |
| 3 | 2 | 1 | 1 | 10 | 11/12/13 |
| 4 | 2 | 2 | 1 | 20 | 11/12/13 |
| 5 | 2 | 3 | 1 | 30 | 11/12/13 |
| 6 | 1 | 1 | 1 | 10 | 01/06/14 |
+--------+--------+-----------+-----+----------+----------+
为数据库中的每一行提供唯一标识总是好的。嗯,在大多数情况下。它对人类来说不是很易读,但它非常适合机器。检查此数据库。第1行和第2行说我们用户1在10/10/13购买了ID为1 x 2的项目和ID为2 x 1的项目。翻译:Antony购买了2个Apple打斗和1个Banana统一。
在此数据库中,您可以按用户过滤行,并按日期分组。你会看到Antony在2014年1月6日买了更多的苹果。
我个人喜欢在数据库中保存小计。如果2015年苹果价格上涨至15.00,您和用户可以看到他在2013年支付了10.00,您可以进行反向计算以获得个人价格。
如果你能很好地阅读这个数据库,你会看到贝蒂在2013年12月12日购买了每件商品中的一件,卡尔从来没有买过任何东西。
我相信并希望它会对你有所帮助。
这只是逻辑运作方式的简化示例。我直接将产品与买家匹配,但大多数商店通常会添加第4个数据库以列出订单。因此,您将用户与订单和订单与产品联系起来。一切都有其优点和缺点