【发布时间】:2011-06-10 18:31:15
【问题描述】:
我只是想知道其中哪一个更适合在 Web 应用程序中使用。我有一个网络应用程序,可让用户发布到该网站。有三种不同类型的帖子,但足够相似,我可以将它们放在一张桌子下。这样做可以吗?
我可以用这种方式规范化表格吗? (把 type 放在下面)
表 1
UserPost
post_id
user_id
type
表 2
Post
post_id
datetime
text
或者使用一张桌子会更好吗?
表格
Post
user_id
post_id
datetime
type
text
我倾向于第三种方式,除非有人能指出缺点。
【问题讨论】:
-
如果我理解正确的话,您有两种不同类型的帖子和不同的列集?并且有些列是相等的?
-
据我了解,共有三种不同类型的帖子,它们或多或少都是文本
-
是的,三种类型的用户输入是文本。我想我可以允许/禁止代码中的类型,但将其全部存储在同一个地方。
-
您没有为您的表指定任何键,我们不知道应该应用哪些依赖项。这些表格似乎意味着非常不同的东西,但如果没有更多信息,您得到的任何答案都只是猜测。
-
最后一张表中,user_id 是外键,post_id 是主键,其他两个可以自己算。这个问题不是我独有的,我只是想在继续之前清除我的困惑。
标签: sql normalization database-normalization