【问题标题】:Inserting into a Table joined to another Table by a reference table?插入到通过引用表连接到另一个表的表中?
【发布时间】:2013-11-18 06:03:16
【问题描述】:

在通过 IRC 与许多人讨论后,我提出了这个数据库设计。

在我的项目中,用户 aka Member 可以在他的帐户上拥有许多“团队”和“项目”,并且也可以是一些“项目”的一部分。此外,“团队”也可以有许多“成员”,包括创建它的成员。

现在我的问题是,假设一个成员想要在他的帐户创建一个项目或团队(稍后我想查看由特定成员创建的所有项目),我可以做一个在 PHP 中插入下面的语句?

INSERT INTO projects VALUES(values) WHERE member_id = something

我猜想我可以使用会话变量来获取 member_id。

【问题讨论】:

  • 您正在寻找 mysql_insert_id() 来获取成员添加的项目 ID,对吧?

标签: php mysql sql codeigniter


【解决方案1】:

使用常规INSERT 创建projectsteams 行,然后使用在那里创建的ID 插入projects_membersteams_members。还要为您的表确定复数或单数名称(目前您有 team 而不是 teams)。

【讨论】:

    【解决方案2】:

    你的查询应该是这样的

    Insert into 
           table(columns) 
    select (columns) from 
           another_table 
    where 
           conditions=.
    

    记住一件事,列的顺序和名称必须匹配。

    【讨论】:

      【解决方案3】:

      如果成员想在他的帐户下创建项目或团队,则无法使用当前结构。

      您需要在项目和团队表上再添加一列 created_by。

      “团队”表的名称应为“团队”。

      【讨论】:

      • created_by 将是一个外键,对吧?那我该怎么做呢?
      • 是的,它将引用成员表的 membet_id。插入项目值(逗号分隔值)
      猜你喜欢
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多