我有2个表 - 一个存储用户信息(id,用户名,密码),第二个存储关于事件(id,名称,描述,日期,用户名(代表创建事件的用户)的信息)。我想实现'最喜欢的事件'功能。这将允许用户存储他最喜欢的事件,并稍后将其显示在列表中。我不确定如何在设计方面实现这一点。我需要一个简单的解决方案就像在用户表中的字段中存储最喜欢事件的ID一样。我正在使用mysql和PHP。任何人都可以指向正确的方向吗?如何设计这个简单的数据库?
1
A
回答
4
您希望有一个链接来自用户和事件表的外键的表。
用户表:
id, username, password
事件表:
id, name, description, date, username
收藏表:
id, user_id, event_id
这样,您就可以轻松地访问喜爱的事件列表。
SELECT events.name, events.description, events.date
FROM events, users, favorites
WHERE favorites.user_id = users.id
AND favorites.event_id = events.id
0
你需要的是最经典和最基本的many-to-many关系。
您需要额外的表格(比如说:user_event_ref
),它将存储用户和事件ID。
User:
id
name
Event:
id
name
UserEventRef:
user_id
event_id
在usereventref
每一列是一个Foreign Key,和两列是主键的部分。
-1
总是有一个选项可以在事件表中添加一个tiny-int字段,将事件标记为收藏夹。这并不违反标准化,因为偶是否是最喜欢的对其他事件没有影响。如果事件被删除,它还具有从收藏夹中自动删除事件的附加好处。
如果收藏夹需要排序方案,您仍然可以用相同的方式修改事件表。如果需要关于“最喜爱的”的详细信息,例如何时将其添加到列表等,那么您应该使用建议的附加表格。
相关问题
- 1. 如何设计这个数据库?
- 2. 如何设计这个mysql数据库
- 3. 简单的数据库表设计
- 4. 简单的数据库设计
- 5. MYSQL简单数据库设计
- 6. 如何设计存储阵列的简单Firebase数据库?
- 7. 优化的数据类型+简单的数据库设计
- 8. 数据库为功能学校设计一个简单的数据库
- 9. Mysql - 一个简单的数据库设计问题
- 10. 这应该很简单。但我如何设计这个?
- 11. 这个数据库设计好吗?
- 12. 简单的嘉宾名单数据库设计
- 13. 如何设计我的数据库以容纳这些数据
- 14. 简单的计划 - 架构数据库
- 15. 订单数据库设计
- 16. 简单的SQL Server 2008数据库的数据库模式设计
- 17. 单一数据库与多个数据库的应用设计
- 18. 我应该如何设计这个数据库?
- 19. 我该如何最好地设计这个数据库?
- 20. 你会如何设计这个MySQL数据库?
- 21. 我应该如何规范化这个数据库设计?
- 22. 我该如何优化这个数据库设计?
- 23. 我应该如何设计这个数据库?
- 24. 简单的租赁数据库的设计与DataMapper的
- 25. 你如何设计这个布局简单?
- 26. 这是不好的数据库设计?
- 27. 数据库设计:简化多对多
- 28. 简单的Ruby on Rails数据库设计
- 29. Mysql简单的数据库设计? (测验竞赛)
- 30. 针对事件流的简单数据库设计
创建第三个表来存储用户的每个喜爱事件的用户ID /偶数组合。 – Veger 2010-04-21 12:40:23