Php 有人能帮我用外行的术语理解pivot表吗?

Php 有人能帮我用外行的术语理解pivot表吗?,php,mysql,mongodb,phalcon,Php,Mysql,Mongodb,Phalcon,我认为我的问题需要一个pivot表,但我想在花费大量时间尝试实现之前弄清楚。我还没有在任何项目中使用透视表 我有一个新的项目,其中包含多个“套件”,它们之间有共同的“部件”,在某些情况下,一个部件可以与另一个套件的部件互换。同样,并非所有零件都彼此兼容 我不必创建一些噩梦般的SQL查询,而是希望从本质上构建一个存储兼容性信息的表,从而使交叉引用成为一个简单的SQL查询 示例: SELECT kitID FROM crossRefTable WHERE partA, partC and partE

我认为我的问题需要一个pivot表,但我想在花费大量时间尝试实现之前弄清楚。我还没有在任何项目中使用透视表

我有一个新的项目,其中包含多个“套件”,它们之间有共同的“部件”,在某些情况下,一个部件可以与另一个套件的部件互换。同样,并非所有零件都彼此兼容

我不必创建一些噩梦般的SQL查询,而是希望从本质上构建一个存储兼容性信息的表,从而使交叉引用成为一个简单的SQL查询

示例:

SELECT kitID FROM crossRefTable WHERE partA, partC and partE are true.
SELECT partID FROM crossRefTable WHERE partA and partE are true.
或例如:

SELECT kitID FROM crossRefTable WHERE partA, partC and partE are true.
SELECT partID FROM crossRefTable WHERE partA and partE are true.
(是的,SQL查询仅用于强调重点)

我不确定“属于”和“有许多”在这里是否一定适用,或者如果适用,将如何实施

使用MongoDB在PhalconPHP中进行编码

谢谢你的想法和建议


Steven

假设您有23个套件和512个不同的部件。您如何定义套件1使用零件A、B和C,而套件2使用零件A、D、E和F?透视表是定义每个套件及其零件之间关系的良好解决方案。一旦有了Kits表、Parts表和KitParts表,就可以将这三个表连接在一起,以便于查询。一旦加入成为你的第二天性,与他们一起工作实际上是一种乐趣

就PhalconPHP而言,
有许多
属于
(),结合透视表是一个很好的解决方案。在透视表中,您将引用一个套件id和一个零件id

假设用户当前正在查看所有套件的列表,并单击特定套件,现在您希望显示包含的所有零件。您的示例与示例中的情况几乎完全相同。但就我个人的写作方式而言,我更倾向于以下途径:

注意:这些都没有经过测试,我已经几个月没碰过phalcon了)

然后,要显示特定套件的所有零件,您需要编写:

$kit = Kits::findFirst(123);//Find record with id = 123
foreach ($kit->kitParts as $kitPart)
{
    echo htmlentities($kitPart->parts->name), "<br>\n";
}
然后你会做:

$kit = Kits::findFirst(123);//Find record with id = 123
$parts = $kit->getParts();
if(count($parts) > 0)
{
    echo "<strong>Parts</strong><br>\n";
    foreach($parts as $part)
    {
        echo htmlentities($part->name),"<br>\n";
    }
}else{
    echo "No parts to show.<br>\n";
}
$kit=Kits::findFirst(123)//查找id为123的记录
$parts=$kit->getParts();
如果(计数($parts)>0)
{
回显“零件”
\n”; foreach($parts作为$part) { echo htmlentities($part->name),“
\n”; } }否则{ 回显“无需显示的零件。
\n”; }
为什么要投反对票?