我应该为两个相似的对象制作两个单独的表

时间:2010-12-28 05:27:39

标签: database database-design

我想在我的应用中存储“推特”和“Facebook状态”作为“状态收集”的一部分,因此每个状态集合都会有一堆推文或一堆Facebook状态。对于Facebook我只对文本感兴趣所以我暂时不会存储视频/照片。

我想知道数据库设计的最佳实践。最好有一个表(将状态的最大值设置为420以包括Facebook和Twitter限制)和“类型”列确定它的状态,或者更好地拥有两个单独的表?为什么?

3 个答案:

答案 0 :(得分:1)

我会将消息放入一个表中,并使用另一个定义类型的表:

SocialMediaMessage
------------------
id
SocialMediaTypeId
Message

SocialMediaType
---------------
Id
Name

它们似乎足够相似,没有必要将它们分开。如果您想在两个社交网站上进行查询,它还可以让您的生活更轻松。

答案 1 :(得分:1)

它可能更容易在表上使用并使用类型来识别它们。当您有多个表时,您只需要一个查询/存储过程来访问数据,而不是每种类型的一个查询。

答案 2 :(得分:1)

严格地说,推文与FB更新不同。你现在可能忽略了非文本,但是你可能会在以后改变主意并被一个不起作用的模型所困扰。作为一般规则,除非它们确实存在,否则不应将对象视为可互换的。如果它们仅仅相似,则应使用2个单独的表或根据需要使用其他列。

所有这一切,如果它只是文本,你可以用一张桌子逃脱。但这是一个意见问题,你可能会得到很多答案。