设计数据库表的方法

时间:2016-04-28 15:44:28

标签: mysql database oracle database-design database-schema

我是新手,也是新编码。在数据库设计方面,我总是感到困惑。让我试着解释一下。

如果我需要创建这样的功能(Stackoverflow)网站,更具体如果我只想在我的网站上简单的问题(发布,upvote,downvote)和答案(发布,upvote,downvote)我可以遵循两种方法

  

第一

  • 创建一个表question,我将在其中保存问题。
  • 创建一个表votes,我将在其中保存投票(上下)。
  • 要获取问题,需要加入这两个表并获得问题并进行投票(上下)
  

第二

  • 创建一个表question,我将在其中保存问题和投票数量(拖累更多列以存储计数上下投票)

  • 创建一个表votes,我将在其中保存投票(上下)。

  • 这次我们可以从一个tablw获取数据,而不是join

我一直想知道应该使用哪一个。

我知道在第一种方法中,如果我们添加更多功能(如共享,查看,答案等),我们需要添加更多联接。

如果我使用第二种方法,我们需要注意一致性,我们还需要插入更多次,如第一种方法。

我不认识有人可以回答这个问题。这就是我在这里提问的原因。

任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

通过查看Stack Exchange Data Explorer,您将学到很多东西。

  

http://data.stackexchange.com/

除了查看架构并能够键入交互式查询之外,您还可以查看,执行和修改其他人贡献的优秀有用查询库。

这是从现实世界网站学习的绝佳方式。