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