2014-03-31 30 views
0

我有兩種類型的對象存儲在mysql中。一個是「事件」,具有時間,標題,內容,所有者等屬性;另一個是「活動」,它具有時間,標題,內容,所有者,最大參與者數量,票價等屬性。如何在Mysql中設計類似的結構表

我需要查詢所有者用戶的事件和活動,並將其顯示在他的日曆上。那麼,這兩種類型的最佳設計是什麼 - 我爲它們使用兩個表(並使用複雜的查詢如聯接);或者我是否使用一個表格和「is_event」標誌列來指示類型(並允許爲事件添加空的「最大與會者編號」&「票價」列)? 考慮到數據庫性能,緩存,編程困難等,您對這種情況的體驗如何?

+0

使用2表的查詢選擇數據。 「加入」並不複雜。 –

+0

很可能超過2,很難說基於提供的信息 –

+1

如果索引正確連接速度與從單個表中選擇一樣快 –

回答

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 
+0

@mrmoment:看到我上面的評論 –

相關問題