0

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

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

1)每个组织的单独表格

2)在一张巨表中为每条评论者数据(比如每个企业 5 列)单独列?

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

第一个看起来很疯狂(因为如果你有 500 个实体,那么你就有 500 个表)。

当我运行我编写的要添加 200 个实体 * 5 条数据(1000 列)的 php 脚本时,第二个给我一个 mysql 错误。不太记得错误,比如 mysql: too many columns(当我查找时,参考资料说这是因为我添加了太多列)

第三个似乎这可能是正确的方法。

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

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

4

1 回答 1

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,您就会知道该评论是针对谁的。

于 2013-04-24T02:46:22.123 回答