Java,mysql 三个表 实现创建活动并关联奖品,一个活动必须关联8个奖品,总概率为100%
时间: 2024-03-21 08:39:13 浏览: 16
可以通过以下三个表实现:
1. 活动表:包含活动的基本信息,如活动名称、开始时间、结束时间等。表结构如下:
```
CREATE TABLE activity (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME NOT NULL
);
```
2. 奖品表:包含奖品的基本信息,如奖品名称、奖品等级、奖品概率等。表结构如下:
```
CREATE TABLE prize (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
level INT NOT NULL,
probability FLOAT NOT NULL,
activity_id INT NOT NULL,
FOREIGN KEY (activity_id) REFERENCES activity(id)
);
```
其中,`activity_id` 用来记录奖品所属的活动ID,通过外键关联到活动表中的ID字段。
3. 活动奖品表:用来记录一个活动关联的奖品,包括奖品ID和数量。表结构如下:
```
CREATE TABLE activity_prize (
id INT PRIMARY KEY AUTO_INCREMENT,
activity_id INT NOT NULL,
prize_id INT NOT NULL,
quantity INT NOT NULL,
FOREIGN KEY (activity_id) REFERENCES activity(id),
FOREIGN KEY (prize_id) REFERENCES prize(id)
);
```
其中,`activity_id` 和 `prize_id` 用来记录活动和奖品的关联关系,`quantity` 用来记录该奖品的数量。
在创建活动时,首先向活动表中插入一条记录,然后向活动奖品表中插入8条记录,每条记录对应一个奖品,并设置该奖品的数量为1。然后遍历所有奖品,计算每个奖品的概率并更新到奖品表中。
在添加奖品时,首先检查该活动是否已经包含8个奖品,如果是,则不能再添加奖品。否则,向奖品表中插入一条记录,并将该奖品与当前活动关联,同时设置奖品数量为1。然后重新计算当前活动已经包含的所有奖品的概率,并更新到奖品表中。
在查询活动时,可以通过活动ID关联查询活动奖品表和奖品表,获取该活动所包含的所有奖品。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)