我有两种类型的对象存储在mysql中。一个是" event",它具有时间,标题,内容,所有者等属性;另一个是"活动",它具有时间,头衔,内容,所有者,最大出席人数,门票价格等属性。
我需要查询所有者用户的事件和活动,并将其显示在他的日历上。那么这两种类型的最佳设计是什么 - 我是否使用两个表(并使用像连接这样的复杂查询);或者我使用一个表和一个" is_event"标记列以指示类型(并允许空"最大与会者编号"&"票价和#34;事件列)? 考虑到数据库性能,缓存,编程困难等,您对此情况的体验是什么?
答案 0 :(得分:1)
使用2个不同的表格。它是一个更简洁的设计,分离不同的数据,并且不需要那些对某些类型总是为空的列。
然后,您可以使用类似
的查询选择数据select u.name,
e.title as event_title,
a.title as activity_title
from `user` u
left join `event` e on u.id = e.owner
left join `activity` a on u.id = a.owner