问题陈述:我正在开发应用中的关注用户功能,并且需要一些功能。 我有一个优惠列表(由用户发布)显示在我的页面上,其中有一个“关注供应商”按钮。现在任何登录用户都可以点击关注按钮并关注发布了优惠。
查询:现在,如果用户已经关注该供应商,则下次供应商发布任何优惠时,跟随按钮应替换为“跟随”或“已经跟随”,因为他已经跟随他。现在我可以得到登录用户在数组中跟踪的记录的结果。这是商品div的结构,其中商品以循环方式显示。
<div class="box col2">
<div class="innerBox"> <img src="http://codex.abc.com/upload_deals/files/221x208/<?php echo $resDeal['productImg'];?>">
<p><?php echo $resDeal['productName']; ?></p>
<p class="styleTxt">Added <?php echo $timer; ?> ago</p>
<div class="clear"></div>
<div class="over">
<div class="twitter">
<a href="https://twitter.com/share" class="twitter-share-button" data-lang="en" data-url="http://www.abc.com/salesDetails.php?dealId=<?php echo $resDeal['saleId']; ?>">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</div>
<!-- Facebook share button Start -->
<div class="facebook">
<fb:share-button type="button_count" href="http://www.abc.com/biggisalesDetails.php?dealId=<?php echo $resDeal['saleId']; ?>"></fb:share-button>
</div>
<!-- Facebook share button End -->
<div class="pintrest">
<!-- Pinterest button Start -->
<a href="javascript:void((function(){var%20e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('charset','UTF-8');e.setAttribute('src','http://assets.pinterest.com/js/pinmarklet.js?r='+Math.random()*99999999);document.body.appendChild(e)})());"><img alt="Pin It!" style='border: none;' src="http://assets.pinterest.com/images/pidgets/pin_it_button.png"/></a>
<!-- Pinterest button End -->
</div>
<div class="clear"></div>
<a href="javascript:void(0)" class="red follow" saleId="<?php echo $resDeal['saleId'];?>">Follow Vendor</a>
</div>
</div>
<div class="bottom">
<h3><?php echo $resDeal['discount']; ?> Off</h3>
<a href="biggisalesDetails.php?dealId=<?php echo $resDeal['saleId']; ?>">MORE</a>
</div>
</div>
一次可以有超过100个优惠,因此最有效的方法是检查用户是否关注过帐优惠的供应商?
我虽然获取数组中的值并检查每个商品是否供应商ID存在于供应商数组中,然后是用户?像这样: select followedUserId from follow where userId =34
。将其存储在数组中检查报价供应商是否与之匹配。这是一个好的方法还是我可以以任何方式进一步优化它?
建议赞赏
答案 0 :(得分:1)
您建议的设计可以正常使用。 还有其他选项,例如:
但实际上这些基本上都是花哨的方式去做你所描述的。出于以下原因:(a)有效,(b)简单,(c)易于理解,(d)易于维护;我会坚持你所描述的选项,即
SELECT followuserid FROM follow WHERE userId=[insert user id here]
如果你真的想把它拿到最大,你可以对数组进行排序并选择一个很好的算法来搜索它,甚至建立一个新的数据结构,比如树,但实际上这是一个简单的问题和制作它非常复杂。