sql - 设计数据库实体和关系
问题描述
我想创建网站来组织活动(活动管理),活动组织者将为活动创建门票。所以这背后的想法是让组织者能够管理他们的人群和容量。
用户可以对活动进行评论和评分并发表评论,也许还可以取消门票,我需要他能够根据城市或日历浏览活动。
所以我像这样设计了我的数据库,但我认为在我继续之前它需要更多的改进。我真的需要你的帮助。
用户表 ID、姓名、电子邮件、密码、性别、手机
角色表 RoleID,名称(这里我的意思是 id 1 代表管理员,2 代表组织者,3 代表用户)
事件表 EventID、名称、类别、城市、日期、时间、描述、座位(容量)
评级表 ID、评级、评论、事件 ID、用户 ID
用户和角色表之间存在关系 N:1 用户和事件表之间存在关系 M:N
我应该如何为评级表建立关系?它有两个表(用户和事件)吗?什么类型的关系?
所有表格中的任何建议?
解决方案
您可以像这样构造数据库
- 角色表 RoleId|RoleName
- 用户表 UserId| RoleId |姓名|电子邮件|密码|性别|手机
- 事件表 EventId| 用户 ID |名称|类别|城市|日期|时间|描述|座位(容量)
- 评级表 RatingId| 事件ID | 用户 ID |评论
我突出显示了具有外键关系的列名。让我知道这是否有帮助。
推荐阅读
- docker - 运行多 pod 的 nginx 入口 504 超时
- javascript - 为 fullcalendar 4.2.0 上的事件添加动画背景
- c# - public PictureBox[] pictureb => Controls.OfType 是什么意思
().ToArray(); - git - 如何使用 github api 获取 github 存储库中的所有目录和文件?
- java - 整数数组中重复值的数量
- python - 如何从新闻摘要中提取股票代码 NUMBER?
- pandas - Python选择N行数据框
- python - 我的 ROC 曲线的某个区域在随机线下方,如何修改混淆矩阵?
- email - 无法使用 gmail 在 go smtp 库中发送电子邮件
- c# - 计算两个给定日期之间的银行假期并以分钟为单位显示差异