【发布时间】:2015-07-01 23:23:06
【问题描述】:
我正在创建一个简单的社交网络作为大学项目,我在其中使用 xampp(以及 mysql 和 php)。
关于将对象列表作为行的元素包含在内的最佳方式,我面临着两难境地。
我会更好地解释一下:在我的项目中,其中包含学生和教授作为唯一用户,他们每个人都有他们参与的项目列表,每个项目都有一个行业/公司/公司的列表,这些行业/公司/公司正在融资或简单地观察项目;每家公司都有自己的简介。
我的困境在于哪种是表示这种架构的最佳方式:
- 我应该为每个项目创建一个表,其中只有一列列出所有公司吗?
- 我是否应该创建一个参考表,在每一行中包含单个项目的代码,以及与其相关的公司数量一样多的列(我不知道 sql 是否允许任意、自动递增的列数) ?
- 我是否应该创建一个包含所有项目数据的表并在最后添加一个列来压缩公司的所有代码?
- 其他我现在无法弄清楚?
对我来说棘手的部分是我需要在所有项目中做四五次类似的事情(不仅对公司而言),有创建很多表(和很多混乱)的风险,但同时如果我只将它们压缩在一个单元格中,那么解析列表的时间会很复杂......
有什么建议吗?
【问题讨论】:
-
你可以考虑
serialization。 -
标准化设计似乎是合适的。如果你不知道那是什么意思,我听说过这本书的好东西,数据库设计为凡人。
-
一个项目可以有很多学生和教授,一个学生或教授可以有很多项目。所以您立即拥有三张桌子 -
people、projects和project_people。最后一个只是通过外键将人员映射到项目。现在你有公司,我假设他们可以资助很多项目,一个项目可以有很多公司资助他们。相同的安排。添加一个companies表和一个关系表company_projects