首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扶轮社会员系统资料库需要哪些表格?

扶轮社会员系统资料库需要哪些表格?
EN

Stack Overflow用户
提问于 2012-12-05 22:59:40
回答 1查看 1.5K关注 0票数 0

这个俱乐部会员系统是用爪哇制造的。我已经做的是一个数据库与一个名为帐户的数据库中存储的注册成员和管理员,这个表的字段是用户名,名字,姓氏,密码,date_join,角色等…

到目前为止,我们的程序所做的是,如果该人注册,那么他将自动成为成员,直到管理员将他提升为管理员。此外,与拥有完全权限的管理员不同,成员在系统中具有有限的特权。

我们的教授说,我们需要修改我们的计划,并为任何想要加入我们俱乐部的人增加一个付费要求,而且会员资格应该在一定的时间内到期。

由于我们在俱乐部方面缺乏经验,我们不知道我们应该如何实现这个额外的功能。我们是否需要为payments创建另一个表,并将其链接到accounts表?在程序中,注册用户是否需要先支付一定的会员费才能成功注册?或者他可以现在注册,然后再支付?当他的账户到期时,如果他没有续签会员资格,他会被从数据库中删除吗?

有谁对这种系统有想法,并能提出一个好的实现方案吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-05 23:42:36

从简单开始,命名您希望管理的所有名词。这些是您的表名。

然后考虑与您可能想要跟踪的每个名词相关的所有形容词。如果一组形容词属于某个类别,则在关联表中创建一列。如果一个形容词总是适用于所有可能的名词,那么就忽略它。数据库用于跟踪随时间变化的数据,最好不要存储常量。

然后想一想不能缺少的形容词。如果您允许取消生日提醒,可能会丢失一个人的出生日期。也许你的俱乐部是一个面向生日的俱乐部,缺少一个名字就相当于一片混乱。

然后看看所需的形容词。找出一些单独的,或组合的,标识表中的一个条目。对于一些人,可以通过他们的名字来识别一个人,这意味着每个不相同的名字都会导致访问不同的人,而每个相同的名字都会导致访问同一个人。如果您曾经遇到过两个John Smith,或者曾经因为结婚而更改过自己的名字,那么您可以立即发现,仅使用姓名列并不是确定身份的理想方式。标识字段的集合称为主键。

然后想想这些名词是如何联系在一起的。如果一个成员不同于一个人,那么你需要将两者结合在一起。有三种用于连接表的基本技术,还有更高级的技术,最好在以后应用。

  1. One X (Person)只能与一个Y(成员资格)关联,则X和Y表可能是合并为一个表的候选对象。这被称为1:1关系。
  2. 一个X (Person)与多个Y(成员资格)相关联,则Y(成员资格)表应该包含对其关联的X (Person)的主键的外键引用。这称为1:N relationship.
  3. Many X(人员)与一个Y(成员资格)相关联,那么X(人员)表应该包含对其所关联的Y(成员资格)的主键的外键引用。这称为N:1 relationship
  4. Many X(人员)与许多Y(成员资格)相关联。简而言之,一个人可能具有特定的成员资格,是组成员资格的一部分,可能已经购买了多个成员资格包,和/或可能只有一个成员资格。在这种情况下,您需要使用构造的" relationship“表来管理关系,该表包含两个外键引用,每个外键引用分别指向X和Y主键。最后,这两个外键引用可能(组合在一起)应该是relationship XY (PersonMembership)表的主键。

还有其他连接表的方法,但基本上它们是最后一种技术的扩展,在这种技术中,您可以增加连接表的数量。

这将为您提供一个良好的开端,您很快就会发现,您所做的选择将不同于其他任何人所做的选择,这就是为什么标准数据库表集合非常少的原因。一旦您建立并运行了一个基本框架,您将发现您可能总是同时提取两组相关数据,然后(如果您走得那么远)您可能会考虑打破一些性能规则。不要试图从一开始就打破规则;你必须遵守规则,才能知道何时打破它们。这样,你就会知道你在实现目标的过程中失去了什么,并且你确实避免了在实际使用中引入的陷阱。

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

https://stackoverflow.com/questions/13726039

复制
相关文章

相似问题

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