【问题标题】:how to insert company with branches and vice-versa如何插入带有分支机构的公司,反之亦然
【发布时间】:2016-07-01 22:31:53
【问题描述】:

我有模范公司,公司可以是分公司 所以可以说A公司是B公司的分支机构,反之亦然

在数据库表中我有这样的东西

公司

id name
1 Company A
2 Company B
3 Company C

company_branches

company_id branch_id
1 2
1 3

我的问题是,如果我想知道 A 公司的分支机构,那没问题,但我想要的是,如果我想知道 B 公司的分支机构,我应该有 A 和 C

我不知道我应该有什么关系以及插入和更新将如何

【问题讨论】:

  • B 公司在您的示例中没有任何分支机构。 B公司只有母公司A。
  • 问题是系统没有母公司,他们都是孩子,如果你从一个孩子分配他的兄弟,那么你可以联系到任何孩子的所有兄弟
  • 哪个数据库?别说mysql

标签: php laravel eloquent relational-database


【解决方案1】:

我认为父子关系在这里也适用,就像在类别列表中一样。

我所做的是创建一个表格

标识 |姓名 | parent_id

如果类别项是父项,则 parent_id 将为 0,而在其他情况下,它将是父项的相应 id。

1 |一个 | 0
2 |乙| 1

这里 A 是父项,B 是 A 的子项。这将是存储数据库中的项的表。 为了有序地检索它们,我使用了这个递归函数:

function buildTree(array $elements, $parentId = 0) {
    $branch = array();
    foreach ($elements as $element) {
        if ($element['parent_id'] == $parentId) {
            $children = $this->buildTree($elements, $element['id']);
            if ($children) {
                $element['children'] = $children;
            }
            $branch[] = $element;
        }
    }
    return $branch;
}
$tree = $this->buildTree($rows);
print_r( $tree );

【讨论】:

  • 感谢您的回答,问题是没有父母,他们都是孩子和兄弟姐妹
  • 这是我所知道的。如果没有帮助,我很抱歉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-16
  • 2014-01-18
  • 1970-01-01
相关资源
最近更新 更多