我想在我的应用中存储“推特”和“Facebook状态”作为“状态收集”的一部分,因此每个状态集合都会有一堆推文或一堆Facebook状态。对于Facebook我只对文本感兴趣所以我暂时不会存储视频/照片。
我想知道数据库设计的最佳实践。最好有一个表(将状态的最大值设置为420以包括Facebook和Twitter限制)和“类型”列确定它的状态,或者更好地拥有两个单独的表?为什么?
答案 0 :(得分:1)
我会将消息放入一个表中,并使用另一个定义类型的表:
SocialMediaMessage
------------------
id
SocialMediaTypeId
Message
SocialMediaType
---------------
Id
Name
它们似乎足够相似,没有必要将它们分开。如果您想在两个社交网站上进行查询,它还可以让您的生活更轻松。
答案 1 :(得分:1)
它可能更容易在表上使用并使用类型来识别它们。当您有多个表时,您只需要一个查询/存储过程来访问数据,而不是每种类型的一个查询。
答案 2 :(得分:1)
严格地说,推文与FB更新不同。你现在可能忽略了非文本,但是你可能会在以后改变主意并被一个不起作用的模型所困扰。作为一般规则,除非它们确实存在,否则不应将对象视为可互换的。如果它们仅仅相似,则应使用2个单独的表或根据需要使用其他列。
所有这一切,如果它只是文本,你可以用一张桌子逃脱。但这是一个意见问题,你可能会得到很多答案。