首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何跟踪购买的物品?

如何跟踪购买的物品?
EN

Stack Overflow用户
提问于 2012-12-31 05:06:13
回答 4查看 569关注 0票数 0

我想要跟踪用户购买某项商品的次数。我的item表当前如下所示:

代码语言:javascript
复制
ID  |  NAME  |  USER_ID  |
1   |  bread |  1        |
2   |  milk  |  1        |
3   |  bread |  2        |

记录购买物品的推荐方式是什么?我只是简单地添加一个counter列,并在每次购买商品时增加价值吗?

代码语言:javascript
复制
ID  |  NAME  |  USER_ID  |  COUNTER  |
1   |  bread |  1        |  5        |
2   |  milk  |  1        |  1        |
3   |  bread |  2        |  3        |
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-31 05:08:47

如果你所需要知道的就是计数,那么一定要这样做。一些应用程序可能需要另一个列出每个“购买”的表,例如,为了能够知道每件商品何时被购买(以防用户多次购买同一件商品)。

另外,该表不应该被命名为user_item或其他名称吗?item这个名字让我想到了一个表,它包含每种类型的项目(面包、牛奶)的信息,与用户无关。

票数 1
EN

Stack Overflow用户

发布于 2012-12-31 05:20:20

我建议在购买更多产品时插入新的行,而不是更新产品的计数器。

代码语言:javascript
复制
PID  |  NAME  | CREATED_ON
1    |  bread | 05-12-2012 9:45 AM
2    |  milk  | 05-12-2012 11:09 AM


ID  |  PID  |  USER_ID  | CREATED_ON
1   |  1    |   1       | 31-12-2012 10:05 AM
2   |  2    |   1       | 31-12-2012 10:05 AM
3   |  1    |   2       | 31-12-2012 11:05 AM

为什么?

  1. 您始终可以将特定日期(通过筛选器)加到get count /实现视图以执行相同的操作。
  2. 从性能和事务的角度来看,插入行比更新现有计数更好。
  3. 最后,建议您添加一个CREATED_ON列(默认GETDATE())作为记录时间戳。
票数 2
EN

Stack Overflow用户

发布于 2012-12-31 05:18:53

我会考虑将它拆分为两个表: item和purchase

项目:

代码语言:javascript
复制
ID  |  NAME  | 
1   |  bread | 
2   |  milk  | 

购买:

代码语言:javascript
复制
ID  |  ITEM_ID  |  USER_ID  | 
1   |    1      |     1     |
2   |    2      |     1     | 
3   |    1      |     2     |

以及特定用户购买每件商品的数量(查找用户#1购买的“牛奶”数量):

代码语言:javascript
复制
select count(*) from purchase where USER_ID = 1 and ITEM_ID = 2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14094658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档