0

我有一个关于我当前项目的问题。它是某个组织的在线注册系统。

关于如何确定某个“会议”中成员的出席情况,我有这个问题。

我的数据库中有一个名为“成员”的表,其中包含有关他们注册的所有信息和一个“会议”表。每年都有会议,会员注册后能够成为该会议的参与者。我需要为“管理员”提供查看功能,以查看谁参加了上一次会议。

我已经有了的想法是,如果该成员注册或参加了“first_conference”,我将在“members”表中添加“first_conference”列并设置一个类似“1”的值,这样如果管理员选择查看第一次的出席情况会议,页面中将显示“first_conference”列值为“1”的成员。

问题是它是每年一次,我正在为此寻找更好的算法。因为如果我按照自己的想法去做,我会像每年在“成员”表中添加新列,例如(“second_conference”、“third_conference”、...、“nth_conference”)

4

1 回答 1

2

这种关系被称为many-to-many这意味着对于每个成员将有多个会议,对于每个会议将有多个成员。

您应该通过使用第三个表来打破这种关系,让我们调用它conf_members,它的列类似于id, member_id, conference_id, attended然后每当您召开会议时,您将在表中创建一个新行,conference例如新的会议 ID 是10,然后您向成员发送邀请并为每个新邀请都会在我们的新表中添加一个新行,例如:

id, member_id, conference_id, attended
1 , 2        , 10           , 0
1 , 5        , 10           , 0
1 , 4        , 10           , 0
1 , 3        , 10           , 0

一旦成员参加,您将参加者从更改为01 如果您正在邀请尚未成为成员的人,您应该在members表中添加该成员的记录,然后将对该成员的引用添加到此表中。

所以现在你不需要再接触你的数据库了,你可以很容易地通过join在你的members, conferences,conf_member表之间使用来生成你的视图。

于 2013-09-29T06:00:25.887 回答