在 SQL 中的单元格内插入列表的最佳方法是什么?

问题描述 投票:0回答:1

我正在创建一个简单的社交网络,在其中使用 xampp(以及 mysql 和 php)。
我面临着一个困境,即哪种是将对象列表包含为行元素的最佳方式。

我会更好地解释它:在我的项目中,其中包含学生和教授作为唯一用户,他们每个人都有一个他们正在参与的项目列表,每个项目都有一个正在融资或融资的行业/公司/公司列表只是观察项目;每个公司都有自己的简介。

我的困境是哪种方式是代表这种架构的最佳方式:

  • 我是否应该为每个项目创建一个表,其中只有一列列出所有公司?
  • 我是否应该创建一个引用表,其中每一行都包含单个项目的代码,以及与其相关的公司数量一样多的列(我不知道sql是否允许任意、可自动递增的列数) ?
  • 我是否应该创建一个包含所有项目数据的表,并在最后添加一列来压缩公司的所有代码?
  • 其他我现在还想不出来?

    对我来说,棘手的部分是,我需要在所有项目中(不仅是公司)执行类似的四到五次,这有创建大量表格(和很多混乱)的风险,但同时如果我仅将列表压缩在一个单元格中,则需要花费大量时间来解析列表......
    有什么建议吗?
mysql sql list xampp
1个回答
2
投票

你在不知道的情况下问的是标准化的概念。值得研究一下。 您的系统的简单设计可能如下所示:

people(id, name, ... type)

projects(id, name, ... )

people_projects(project_id, people_id)

companies(id, name, ...)

company_projects(company_id, project_id)

每位教授或学生都是

people
表中的一行。每个项目都是
projects
表中的一行,项目上的每个人都是
people_projects
表中的一行。对于公司来说也是如此。

然后,您可以通过将表连接在一起来访问您的信息,例如,为了让项目中的所有学生都名为“Project X”,您可以执行简单的内部连接:

select *
  from projects p
    inner join project_people pp
      on p.id = pp.project_id
    inner join people pl
      on pp.people_id = pl.id
  where p.name = 'Project X'
    and pl.type = 'student';

简单、强大的数据库架构和简单的数据访问。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.