我有一个警报菜单,可以为用户显示新内容。它是一个像ebay这样的PHP系统。
所以我卖桌子了:
id
seller
customer
product_name
date
我想要的是为每个用户显示带有新销售警报的菜单。对于这项工作,我可以:
方法1:
在sell表格中添加SEEN
列,在插入时将其设置为0,在USER
点击警报菜单时,它会扫描表格以将SEEN
设置为1。
update sell set seen = 1 where seen = 0 and seller = ?
方法2:
记录上次(日期)用户点击提醒菜单,然后选择新提醒where date > last_date_click
:
select * from sell where date > $last_date_click and seller = ?
所以,我的问题是,在这种情况下我应该使用哪一个以及为什么?
答案 0 :(得分:1)
这种方法不会像你真正想要的那样工作。 在您的方法中,您应创建包含id,productID,userseenID的新表,而不是您在检查买方是否已进入产品时。 当然,当用户进入项目时,你必须更新它,你应该检查productID是否存在于productID中,如果不是创建一个。 顺便说一下,您可以添加time(),以确切知道何时以及哪个用户访问该项目。
祝你好运答案 1 :(得分:0)
我理解你的问题以下方法很有用,因为最好选择查询而不是多个更新查询。
方法2:
记录上次(日期)用户点击提醒菜单,而不是选择新提醒的日期> last_date_click:
select * from sell where date > $last_date_click and seller = ?
答案 2 :(得分:0)
这个问题属于太广泛的范畴,但由于你很想知道,我看到它的方式,A SELECT
本身必须更快,因为它只涉及搜索并从需要搜索和更新的UPDATE
中取出!
PS。有很多知识比这更重要的人。我希望Barmar,Gordon Linoff或其他人对此进行深入分析。干杯。
select * from sell where date > $last_date_click and seller = ?