首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在创建社交投票系统时,您是否应该在数据库中单独跟踪downvotes和upvotes?

在创建社交投票系统时,是否应该在数据库中单独跟踪downvotes和upvotes,取决于您的需求和系统的复杂程度。以下是一些建议:

  1. 如果您的系统需要区分upvotes和downvotes,并且需要对它们进行单独的计数和分析,那么您应该在数据库中单独跟踪它们。这样可以更好地展示用户的参与度和反馈,有助于改进您的社交投票系统。
  2. 如果您的系统只需要计算总的投票数,而不需要区分upvotes和downvotes,那么您可以在数据库中只跟踪总的投票数。这样可以简化系统的设计和实现,同时也可以保护用户的隐私。
  3. 如果您的系统需要对用户的投票行为进行限制,例如限制用户每天只能投票一次,那么您需要在数据库中跟踪用户的投票历史记录,以便检查他们是否已经投票过。

总之,在设计社交投票系统时,需要根据您的需求和目标来决定是否需要在数据库中单独跟踪upvotes和downvotes。无论您选择哪种方法,都应该考虑到系统的性能、扩展性和用户体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

吧友们, 昨天的「百度贴吧」还差一个用户界面, 代码都在这儿了...

我们还需要向表单添加事件处理程序,以便用户提交表单,我们可以访问到用户提交的数据并将其发送到智能合约。...这需要我们回到刚刚创建的帖子组件 Post 中进行更改,首先我们必须明确此处更改要实现的功能: 展示每个帖子的好评数差评数; 为用户分别添加处理好评投票差评投票的处理程序; 确定用户是否可以对帖子进行投票...我们需要分别在好评投票按钮差评投票按钮上添加点击处理程序,然后再将我们投票类型 BALLOT 定义的好评投票差评投票传递给它们(请注意,投票类型的没有投票 None 只是为了保证程序逻辑的完整性...这是因为,我们智能合约中加入了一项限制条件,确保用户无法对已经投票或还未创建的帖子进行好评差评投票。 成功近在眼前,最后我们只需要将这个投票限制逻辑加入前端程序。...代码,这个功能对应于投票是否正在提交(submitting)的状态。

3.3K00

还记得当年的百度贴吧吗? 今天, 有人写了一个去中心化的...

2、创建智能合约 使用 Solidity 语言编写智能合约,在其中加入创建帖子功能投票功能。...} 为存储每个帖子投票纪录,我们需要在帖子结构体 Post 相应地加入“好评”投票计数器“差评”投票计数器。...uint upvotes; uint downvotes; mapping(address => Ballot) voters; } 现在的新建投票事件 NewVote 应该如下所示: event...upvotes: 0, downvotes: 0 }); } 现在万事俱备,只欠投票函数 vote() 了!!!...我们有许多种不同的方法验证投票函数 vote() 的功能是否符合预期,但在本教程,我们只检查新建投票事件 NewVote 发出投票的所有者帐户是否与真正执行投票的帐户相同,代码实现我们可以借鉴先前的测试

66800
  • Gorm 数据库表迁移与表模型定义

    2.2 AutoMigrate 基本使用 Gorm ,你可以通过调用 db.AutoMigrate 方法来进行数据库表的自动迁移。...秒时间戳,而不是 time,只需简单地将 time.Time 修改为 int 即可 type User struct { CreatedAt time.Time // 创建,如果该字段值为零值...,则使用当前时间填充 UpdatedAt int // 创建该字段值为零值或者更新,使用当前时间戳秒数填充 Updated int64 `gorm:"autoUpdateTime...使用指定数据库数据类型,它需要是完整的数据库数据类型,如:MEDIUMINT UNSIGNED not NULL AUTO_INCREMENT serializer 指定如何将数据序列化反序列化到数据库的序列化程序...,对于'int'字段,它将跟踪unix秒,使用值'nano/'milli跟踪unix nano/milli秒,如: autoCreateTime:nano autoUpdateTime 创建/更新跟踪当前时间

    33210

    Machine learning at Quora(下)

    Recommendations 上述的个性化排名已经是推荐系统的一种形式了。例如,流行的Quora电子邮件摘要包括已选择并为推荐的故事集合。...例如,不同的地方,会看到应该关注的人或主题的建议(见下文)。 ? Related Questions 另一个推荐来源是给用户与当前问题有些相关的问题。...相关问题是一种当非注册用户在从外部搜索访问问题页面创建其参与度特别有效的模型。这就是为什么现在这种推荐模型是非个性化的原因之一。...我们不仅知道用户在给定主题中写的答案,而且我们也知道用户在这些主题上收到的upvotesdownvotes或者views。我们还知道用户对给定主题有多少“endorsements”。...此外,不久的将来,ML会有令人兴奋的新应用。 这些包括广告评级,机器翻译NLP的其他应用,这些应用将直接用于我们即将添加的新产品功能。

    63420

    Upvote Dynamics on the Quora Network(上)

    其中最突出的是主页Feed摘要电子邮件,但也有其他途径,如较新的“关注的人”电子邮件。通过这些分布渠道之一,作者的直接追随者可以升高答案,将答案传播给二级学位追随者。...当作者从用户网络的遥远部分接收upvote,这是这个任务已经实现的许多可能的信号之一。 下面,我们将讨论关于如何在Quora网络中分发发现答案的几个问题。在实践,答案如何通过Quora网络传播?...数据团队注意到,Quora社区也有这些问题的兴趣(例如,一个upvote是如何在Quora上的主题关注者之间传播的),所以我们决定探索我们的第二个(过期的)博客文章。...答案具有很高的概率远离所连接的观众,并且以任何社交方式(无论是否间接的)与回答者接触不相关的人。...如果在时间t之前没有upvote投票,那么该答案图中的距离0处。 ?

    91910

    GORM V2 模型定义、约定、标签

    01 概念 使用 GORM 操作数据库,需要了解 GORM 的约定字段标签提供的约束。...int32 } 05 标签 字段级别权限控制 GO 语言中,根据名称的首字母大小写来定义是否可被导出,GORM 使用可导出的字段进行 CRUD 拥有全部权限,另外,GORM 可以使用标签控制字段级别的权限...如果定义了他们,GORM 创建/更新时会自动填充当前时间至这些字段,要使用不同名称的字段,您可以配置 autoCreateTim、autoUpdateTim 标签。...示例代码: type User struct { CreatedAt time.Time // 创建,如果该字段值为零值,则使用当前时间填充 UpdatedAt int //...创建该字段值为零值或者更新,使用当前时间戳秒数填充 Updated int64 `gorm:"autoUpdateTime:nano"` // 使用时间戳填纳秒数充更新时间 Updated

    3.7K20

    Machine learning at Quora(详细版上)

    重要的是要注意,所有这些改进都是首先通过使用许多不同类型的离线指标进行离线优化测试,并最终通过A / B在线测试的。在下面的段落,我将介绍Quora2015年ML的最重要的应用技术。...从非常大到非常小的公司都已经创建了围绕有排序查询结果能力的商业模型。Quora,我们根据不同的上下文不同的主题使用排名算法。一个有趣的例子是回答排名。...例如,我们具有编码关于写作质量的信息的特征,而且还使用通知关于答案所接收的交互类型(例如,upvotesdownvotes或expands)的特征。...Quora Feed基本上是任何登录用户登录产品将看到的主页。该页面,我们正在尝试为给定用户在给定时间选择排名最有趣的故事(参见下面的示例)。...正因为如此,Quora创建这样的个性化排名有着许多不同的特征。

    31920

    单元测试最佳实践:如何最大程度地利用测试自动化

    5)代码审查过程包含单元测试可以揭示修改后的代码或新代码应如何工作。另外,审阅者可以确认测试是否良好。   ...如果应用程序代码是单独的,则测试很简单...但是对于正在测试的社交代码,您可以构建“单独”或“社交”测试。“社交测试”将依赖于真实的依赖关系以验证行为,而“单独测试”则将受测代码与依赖关系隔离开。...复杂代码的社交测试可能需要大量设置,并且可能违反隔离可重复的原则。但是,由于模拟是测试创建和配置的,因此它是独立的,我们可以更好地控制依赖项的行为。另外,我们可以测试更多的代码路径。...单元测试应在有组织的测试实践执行   为了各个级别上推动测试的成功,并使单元测试过程具有可扩展性可持续性,您将需要一些其他实践。首先,这意味着在编写应用程序代码编写单元测试。...如果拥有自动化的工具,这不仅很有价值,它不仅可以测量代码覆盖率,还可以跟踪测试覆盖了多少修改后的代码,因为这可以使了解是否编写了足够的测试以及生产代码的更改。

    1.3K30

    面部识别是如何工作的?

    面部识别系统使用生物识别技术从照片或视频映射面部特征。它将信息与已知面孔的数据库进行比较以找到匹配项。 面部识别可以帮助验证个人身份,但同时也会引发隐私问题。...技术各不相同,但以下是基本步骤: 步骤1.从照片或视频捕获的脸部照片。你的脸可能单独出现,也可能出现在人群。你的图像可能会显示你直视前方或几乎是侧面。 步骤2.面部识别软件读取的脸部几何形状。...步骤4.确定的面部特征可能与面部识别系统数据库的图像相匹配。 通常,这就是面部识别的工作原理,但是谁来使用呢? 谁使用面部识别? 很多人和组织很多不同的地方使用面部识别。...网站上的社交媒体公司。当您将照片上传到平台,Facebook使用一种算法来识别面孔。社交媒体公司询问您是否要标记照片中的人物。如果选择是,它将创建一个指向其个人资料的链接。...当你注册社交媒体网络,你可能已经放弃了所有权。或许有人在网上追踪你的照片并出售这些数据。 安全。面部识别可能会导致在线骚扰跟踪

    1K00

    Django 3.1 官网学习路线

    migrate 命令只会在 INSTALLED_APPS 运行应用程序的迁移。 创建模型 我们的投票应用程序,我们将创建两个模型: 问题选择。问题有问题发布日期。...它对于检查 Django 要做什么,或者数据库管理员是否需要 SQL 脚本进行更改非常有用。...之所以要用单独的命令来进行迁移是因为你要将迁移提交到版本控制系统,并与应用一起发布;它们不仅使的开发更容易,还可用于其他开发人员生产环境。...通常,需要定制管理表单的外观工作方式。可以通过注册对象告诉 Django 所需的选项来实现。 通过重新排列编辑表单的字段来了解其工作原理。...“添加选择”表单如下所示: 该表单,“Question”字段是一个选择框,包含数据库的每个问题。Django 知道一个外键应该在管理中表示为一个框。我们的例子,目前只存在一个问题。

    8.2K10

    微服务启用分布式跟踪 | 微服务系列第十篇

    跟踪微服务的目标类似于此级别的日志记录。最高级别,从一个微服务到另一个微服务的跟踪,讲述了事务或请求通过基于微服务的系统传播的路径。 分布式跟踪特指跨越微服务边界跟踪请求流。...例如,MicroProfile会议应用程序,下图中显示的示例跟踪从Web应用程序客户端通过API网关到调用CouchDB服务的微服务投票端点,然后通过Web应用程序客户端的API网关: ?...默认情况下,上图中显示的跟踪包含三个单独的跨距。 为每个Web服务调用创建一个跨度。 第一个后续每个后续跨度继承前一个跨度作为其父级。...为了使分布式跟踪系统有效可用,环境的每个微服务都需要两件事: 必须就跨微服务传输相关ID的机制达成一致。跟踪实现在内部使用关联ID来跟踪来自上游系统的传入请求已存在的各个跨距。...注释方法执行开始开始跨度,并在方法执行结束完成跨度。 @Traced注释具有以下两个可选参数: 值可以类或方法级别启用或禁用显式跟踪

    1.4K30

    3分钟将10M Stack Overflow导入Neo4j

    我想演示如何将Stack Overflow快速导入到Neo4j。之后,您就可以通过查询图表以获取更多信息,然后可以该数据集上构建应用程序。...[关系表] 所以Damien编写了一个小的Python脚本从XML中提取CSV文件,并使用必要的头文件neo4j-import工具完成了从巨大表格创建图表的繁重工作。您可以在这里找到脚本说明。...python3 to_csv . py extracted 转换我的系统上运行了80分钟,9.5GB的CSV文件被压缩到3.4G。 这是导入到Neo4j的数据结构。...,因为它关系到数据库的2亿条路径,大约60秒后它会返回。...回到Stack Overflow的1000万个问题,感谢使用关于Neo4jCypher的#Soreadytohelp话题。 如果你发现这个数据集的其他有趣的问题答案。

    6.6K70

    Web3项目创意​ Web3NFT链游开发

    没有授权、跟踪器或注册。 网站数据存储文件系统的服务器上,并且通常以其原样发布。此功能迫使网站管理员添加新页面重新布局已存在的页面以添加链接。...Web 2.0 的数据交换通过 HTTP 协议进行,而参与者之间有一个中介——这是一个存储信息、数据库、应用程序等的服务器。 Web 3.0 的概念意味着没有服务器的情况下组织新级别的网络。...此外,社交媒体会在不询问我们的情况下使用我们的数据来满足他们的需求。 Web3 社交网络不会有这些缺点它将是安全的,并且只有同意的情况下才会收集的数据,您可以删除它或拒绝访问。...此外,您将拥有对创建的内容的所有控制权权利 4.去中心化社交交易 社交交易是指专业交易员加密货币或外汇市场上进行交易,而其他交易员自动重复交易。...它很方便,但也有相当大的缺点:缺乏透明度、费用高缺乏安全性。这些都是中心化系统的问题,只有去中心化的平台才能解决。 Web3 ,此类平台将在区块链上运行,从而使它们更加安全且更具成本效益。

    46330

    MongoDB安全、备份监控

    MongoDB是一个键值对的数据库管理系统。当涉及到数据库管理,诸如安全性、备份、对数据库的访问等重要方面都是重要的概念。...以下是在数据库实现安全性的最佳实践 1、启用访问控制——创建用户,以便在访问MongoDB上的数据库强制所有应用程序用户具有某种身份验证机制。...MongoDB备份程序 使用MongoDB,一定要确保有一个备份过程,以防MongoDB的数据由于任何原因损坏。...2、mongotop跟踪并报告MongoDB实例的当前读写活动,并根据每个集合报告这些统计信息。 3、MongoDB提供了一个web接口,可以一个简单的web页面诊断监视信息。...MongoDB索引性能考虑 1、索引在任何数据库中都非常重要,可以用来提高MongoDB搜索查询的效率。如果一直文档执行搜索,那么最好在搜索条件中使用的文档字段上添加索引。

    1.1K20

    Upvote Dynamics on the Quora Network(下)

    每当这种情况发生,从读者到作者的网络距离缩短,这是生态系统应该具有的行为标志。 同时,许多现实世界和在线网络也展示着名的“小世界”效应,其中节点之间的典型距离一直很小,即使网络变得非常大[2,3]。...这只是Quora生态系统的机体功能的又一个信号。 即使小世界网络,典型的路径长度随着网络的增长而上升;它只是很慢。...此外,当Quorans识别跟随一个优秀的回答者,他们可能缩短网络的路径长度,但他们也增加了距作者短距离的读者数量。这使得答案更容易在网络上采取前几个步骤。...为了探讨这种可能性,图7,我们单独绘制了由不同范围的追随者作者写的答案的数据。 ? ?...这对应于连接的受众的答案。超过N = 5,曲线N =∞迅速恢复到它们的值。这表明曲线的这一部分由逃离相连的观众的答案所主导。 ? ?

    30710

    How Anti-Patterns Can Constrain Microservices Adoption

    因为创建微服务,服务功能相应的数据开始一起迁移。 任何微服务转换工作都有两个主要目标。第一种方法是将单一应用程序的功能拆分为小型、单一用途的服务。...这大大降低了维护扩展微服务的复杂性。 监控性能测试 微服务监视是其设计涉及的一个非常重要的方面。确定每个日志是否与请求及其对应的服务相关联非常重要。...我们应该在所有日志中都有一个惟一标识请求的链接ID。性能测试应该是开发过程的一部分。 进行任何架构决策,必须清楚地标识chmarks。 控制版本控制策略 版本控制策略导致难以管理代码依赖关系。...最简单的策略之一是拥有一个API版本,并在路由URL包含该版本。 微服务工作负载数据访问模式的设计 微服务的设计依赖于组织的数据库。数据访问模式应该在微服务之间清楚地分开。...有时候,通过多个服务实例使用一个数据库是很好的,只要数据是明显独立的集合。 共享库 共享库功能没有任何直接的业务价值,不需要单独作为一个微服务。

    36320

    开发一个成功的Admin后台,需要关注什么?

    那些开发人员经常被要求在数据库查询、修复的内容,都应该在的 Admin 后台中有一个页面。要创建一个 Admin 后台,需要使用各种前端组件,于此同时您要尽可能多地复用已有的库、组件模板。...认证授权认证方面,即使有密码管理器,还是会有很多人不喜欢创建账户,尤其是当这个账户需要经常更换密码来保持其安全性,情况更加明显。...不仅如此,会希望能够公司现有的用户管理系统管理用户,防止外部用户注册。这些原因都使单点登录 (SSO) 成为一个不错的认证选择。...如果的服务实现了前后端分离并通过 REST API 访问后端接口,实施审计是最容易的,因为您可以让后端将接口请求记录插入到审计日志。...使用专业公司创建的工具的一大好处是将由他们来负责维护文档,或许还会有一个开发者社区,当遇到困难,可以向他们提问。但如果选择从头开始开发内部工具 Admin 后台,那就会失去这两方面的优势。

    50511

    MaskCam:Jetson Nano AIoT口罩检测相机

    MaskCam可检测并跟踪其视野的人员,并通过对象检测,跟踪投票算法确定他们是否戴着口罩。 它将检测统计信息上载到云中,在其中可以使用Web GUI监视摄像头正在观看的区域中的口罩合规性。...请按照平台的安装说明的机器上安装docker-compose,然后再继续。在下一步设置容器,将自动安装所有其他必需的软件包库。...:Mosquitto代理,后端API,数据库Streamlit前端。...如果设备可以访问服务器的IP,那么应该在输出日志中看到一些成功的连接消息,然后在前端的下拉菜单中看到的设备(如果没有看到,请重新加载页面)。...创建一个实时车牌检测识别应用程=

    1.4K20

    MaskCam:Jetson Nano AIoT口罩检测相机

    MaskCam可检测并跟踪其视野的人员,并通过对象检测,跟踪投票算法确定他们是否戴着口罩。 它将检测统计信息上载到云中,在其中可以使用Web GUI监视摄像头正在观看的区域中的口罩合规性。...请按照平台的安装说明的机器上安装docker-compose,然后再继续。在下一步设置容器,将自动安装所有其他必需的软件包库。...:Mosquitto代理,后端API,数据库Streamlit前端。...如果设备可以访问服务器的IP,那么应该在输出日志中看到一些成功的连接消息,然后在前端的下拉菜单中看到的设备(如果没有看到,请重新加载页面)。...创建一个实时车牌检测识别应用程序

    1.2K20
    领券