2014-12-11 58 views
0

所以我正在为邀请的应用程序工作。人们可以在应用程序内向他们的朋友发送邀请,并查看迄今为止谁接受了邀请,但如果邀请是由同一人同时发送的,则邀请被分组在一起。我无法构建如何获取接受邀请的人员列表。我应该如何构建已接受的邀请?

现在我有一个邀请接受表字段sent_to_user_id字段和send_by_user_id字段,但我需要获得接受邀请的用户列表。

我想我需要使用id字段创建另一个表,然后在此新表中创建一行并保存创建的id,然后将该id添加到invites表中的字段并获取所有在接受字段为true的情况下使用该id的邀请。这是构建这种关系的好方法,还是有更好的方法来做到这一点?

+0

好吧,假设你在invites表中有一个'invite_id'字段,你可以从邀请中选择sent_to_user_id,其中invite_id ='一些邀请'和accepted = true' – benji 2014-12-11 03:11:46

+0

好吧,麻烦是我不知道是什么invite_id是因为有多个邀请在同一时间发送,应该在抓取谁接受时分组在一起...我会将此添加到帖子中,我想我还不够清楚 – Tyler 2014-12-11 03:16:28

+0

我认为您应该让另一个字段这是邀请的组ID。然后,可以更容易地识别属于一组邀请的邀请。 – EricF 2014-12-11 03:21:12

回答

0

很显然,你不给很多细节在这里,但在阅读您的问题,即来到我脑海的第一个方案是:

CREATE TABLE user(
    id int not null, 
    first_name text not null, 
    last_name text not null 
); 

CREATE TABLE event(
    id int not null, 
    event_name text not null, 
    user_id int not null references user(id) 
); 

CREATE TABLE invite(
    id int not null, 
    event_id int not null references event(id), 
    user_id int not null references user(id), 
    accepted boolean not null default false 
); 

注:以上尚未测试,应该被视为伪代码,并不包含索引等内容。

这假设只能由创建事件的用户创建邀请。但是,即使您必须将sent_by_user_id字段添加到invite表中,我仍然只会包含accepted字段。从你的OP中,我没有看到你需要将它分解到另一个表中的原因。

相关问题