PHP删除页面上的记录而不删除数据库

时间:2014-01-03 16:40:24

标签: database

我想检查是否 如果有任何方法删除页面中的记录,而不删除数据库中的记录? 我正在购物车,并希望让用户能够查看他们过去的交易。 我退房后有什么方法可以删除购物车中的记录吗?并且还能够查看过去的交易。

我还没有做任何代码, 只是寻求建议

1 个答案:

答案 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个数据库以列出订单。因此,您将用户与订单和订单与产品联系起来。一切都有其优点和缺点