0
在提问/回答论坛组件我写一个网站的一部分,我有两个表理论上是这样的(也就是我想要说的数据保存每个实体):我应该将这些表合并为一个,还是让它们分开?
THREAD POST
thread_id post_id
type_id (question) writer_id
writer_id thread_id
title parent_id
body (optional) post_body
followers date
merge_id upvotes
date dnvotes
upvotes replies
dnvotes views
replies post_type_id (e.g. answer, comment to an answer etc.)
views
anonymous
唯一这些实体之间的真正区别是merge_id(如果一个问题被合并到另一个问题中,该id将引用所述question_id),关注者和标题。把它们合并成一个似乎有点麻烦,并且对我来说很臃肿,而且我认为似乎开始有点不规范。而且,如果它们是一个,那么正文和标题都必须是可以为空的,他们不应该(我知道代码中可以有保护措施)。
我也想过有螺纹的仅包括未在岗的属性这将是什么样子:
THREAD
thread_id (or post_id which would be primary and foreign key refing POST)
title
merge_id
followers
但这并不手感相当不错要么。
此外,如果它有任何区别,我打算以quora的风格,将问题与最高等级的答案一起显示出来。
任何设计建议将不胜感激。
(也,我让他们一个人一般(线程/后),因此,如果需要,我可以将这些表用于博客或任何其他以后。)
https://www.postgresql.org/docs/9.6/static/tutorial-inheritance.html –
这是一个常见问题解答。 Google'stackoverflow.com philipxy数据库子类型'。 – philipxy
在你的文章中你表格的表现是相当奇怪的。通常一个人不会并排写两个列表(列),这使得它们很难使用。假设有人想复制线程表的列表以在他的答案中使用它。一个简单的编辑器(大多数浏览器提供的)无法有效地处理这个问题。必须逐字复制列。一行中的列是不相关的,所以我看不出以这种方式表示这种情况的好处。 – miracle173