yelp或评论网站的数据库架构会是什么样的?

时间:2013-04-02 22:41:17

标签: php mysql database-design database-schema

我可以使用一些帮助构建数据库。我目前有一个数据库和一个名为列表的表,其中包含8个列(名称,联系人,地址...),其中包含有关每个组织的信息。

接下来,我想设置一个评论数据结构来存储和检索评论者信息(名称userName,评论日期,评论......)。 这些是我目前对这个问题的猜测......

1)每个组织的单独表格

2)在一个巨大的表格中,每个评论者数据的单独列(每个企业有5列)?

3)每个数据一个表(所以一个表用于用户名,一个表用于评论......)?

第一个似乎很疯狂(因为如果你有500个实体,那么你有500个表)。

当我运行一个php脚本时,第二个向我扔了一个mysql错误我编写了添加200个实体* 5个数据(1000列)。不要记得错误,比如mysql:列太多了(当我查了一下时,引用说这是因为我添加了太多列)

第三种看起来似乎是正确的方式。

最后我计划有大约3000个组织,加上我可能有很多评论,每个组织可能有20个(估计)。

架构的这三个选项中哪一个看起来最合理?

1 个答案:

答案 0 :(得分:0)

查找第三种常规形式,以获得有关如何构建关系dbms的一些见解。

但是,您应该有几个表,每个表都有一个ID

A)具有组织名称等的组织表。

B)地址表,引用组织ID(这样你可以为一个组织提供多个地址)

C)使用对组织ID和用户ID的外键引用来检查表

D)用户表,其密码可能是哈希值。

通过引用组织ID,您可以拥有1:MANY关系,1个组织可以拥有多个地址和评论。

你只需要我看到的4个表,如果要解决的组织是1:1关系,你可以把地址放在组织表中,虽然这有点懒,可能会在以后咬你。

您的评论表会包含您的所有评论,您可以使用外键来获取用户或组织的评论。例如。 “从Table_Reviews中选择* WHERE Organization_id = 10”。如果您在组织表中查找ID = 10,则您知道审核的对象。