首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP/MySQL创建和构造虚拟学分系统

如何使用PHP/MySQL创建和构造虚拟学分系统
EN

Stack Overflow用户
提问于 2012-05-21 14:33:16
回答 2查看 4.8K关注 0票数 2

在PHP/MySQL中构建虚拟学分系统的最佳方法是什么?

显然,每次交易我都需要一张桌子(借方/贷方)。我想我需要该表中的下列列:

  • TransactionID (从1开始使用Auto-Increment)
  • UserID的唯一事务ID )(用户来自主要用户的唯一ID table)
  • Type (已获得、购买、使用、etc.)
  • ItemID )(如果用于item)
  • Amount (正或负))。

问题:

1)我需要这个表中的其他列吗?

2)为此目的,我还需要其他表格吗?

例如,我是否需要另一个表来跟踪每个用户的总数?或者,我会简单地计算每个用户的总数作为他们所有事务的总和吗?

首先,这个信用系统将是纯粹的“玩钱”,但我确实期望在未来增加一个“购买信用”选项,所以也许我应该为第三方支付处理器的唯一交易ID添加一个列?或者我应该为购买的信贷创建一个单独的表,然后通过我的脚本将两者结合在一起(例如,总信贷=已获得的信贷+购买的信贷-已使用的信贷)?

除了回答上面的问题外,我还会感谢任何和所有的见解和想法,包括关于如何进行这方面的具体文章的链接,因为我以前从未编写过类似的程序。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-21 15:13:02

一些笔记。

我认为,如果你想要建立一个坚实的系统来处理财务问题,那么使用金融界的一些基本概念是有意义的。我不想说你必须完全实现所有的会计功能,但在我看来,很多事情似乎都是合理的。

首先,金融交易涉及将资金从一个帐户转移到另一个帐户,所以我不使用user_id,而是使用account_id。每个用户可能有一个以上的帐户,每个帐户有一个类型(查找)和货币。此外,我会避免使用“用户”一词,而更倾向于“派对”(派对-角色-关系模式)。

其次,至少有两个参与者参与:资金从一个账户转移到另一个账户。在购买项目时,个人账户余额减少,组织账户余额增加。

而且,我不使用item_id,而是使用类似于event_id的东西。每个事务都与一个业务事件相关联。事件是系统中可能发生的各种事件的公共父表。Event的每个细节表都将保存特定于事件类型的信息。例如,您可以拥有purchase_eventdeposit_event等。

因为transaction表是许多(可能有数千个)插入的主题,所以我不会每次需要帐户余额时都会查询它。在account表中保持合并平衡是有意义的。

我希望这是有意义的。

票数 4
EN

Stack Overflow用户

发布于 2012-05-21 15:26:07

除非您真正知道系统应该做什么,否则很难对数据库的体系结构说些什么。但我还是尽力了。

我不认为把这么多信息放在一张桌子上是个好主意。

这样我会做得更好-- transactions(id, user_id, amount, timestamp),这个表包含了关于每笔付款的最小信息。

其他一切都是分开的,例如transactions_types(transaction_id, type)transactions_items(transaction_id, item)

关于学分。如果购买的是相同的货币,您只需再添加一种类型的事务,并在必要时将表作为transactions_psid(transaction_id, psid)

如果货币不同,则一切取决于系统上的负载。只有一个表具有唯一的transaction_id是好的,直到它变成太多的记录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10687274

复制
相关文章

相似问题

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