您好我有一个包含基本用户配置文件的应用程序,例如firstname,lastname和email。用户可以创建一个事件。事件表包括标题,描述,事件时间。用户可以创建活动并邀请其他人加入该活动。此外,还可以邀请用户参加多个活动。
分析:这是多对多的关系,因为用户可以拥有多个事件,并且多个用户可以创建事件。根据我的分析,我可以通过两种方式做到这一点。
我使用了数字2.我创建了一个用户表和一个事件表。由于它是多对多的关系,因此创建了另一个名为user_event
的表。 user_event
表包含事件,拥有该事件的userA和userB是参与该事件的用户。我添加了另一个名为pending_request的列,其默认值为0表示不参加,1表示参加。由于某种原因,我觉得我的方法是错误的,如果我的方法错了,请有人可以纠正我。
活动表:
create table if not exist 'event'(
event_id unsigned unsigned int not null auto_increment,
title varchar(20) not null,
description varchar(20) not null,
date dateTime not null,
primary key(event_id))ENGINE=InnoDB;
用户表:
create table if not exist 'user'(
user_id unsigned int not null auto_increment,
firstName varchar(20) not null,
lastName varchar(20) not null,
image varchar(20) not null,
primary key(user_id))ENGINE=InnoDB;
用户与事件之间的多对多关系:
create table if not exist 'users_event'(
event_id unsigned not null,
userA unsigned not null,
userB unsigned not null,
pending_request int not null default 0,
Foreign Key(event_id) references event(event_id) ON DELETE CASCADE,
Foreign Key(userA) references event(user_id) ON DELETE CASCADE,
Foreign Key(userB) references event(user_id) ON DELETE CASCADE))ENGINE=InnoDB;