Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基本的mysql/数据存储问题:信息架构,而不是代码本身_Php_Mysql_Wordpress - Fatal编程技术网

Php 基本的mysql/数据存储问题:信息架构,而不是代码本身

Php 基本的mysql/数据存储问题:信息架构,而不是代码本身,php,mysql,wordpress,Php,Mysql,Wordpress,我正试图找出我的第一个“更复杂”的SQL应用程序,但在构思简单操作的最佳方法时遇到了一些困难。我理解代码,我认为,围绕着各种概念,但我想知道你认为最好的方式是继续进行的方式,更重要的是什么术语/如何称呼这种方法,这样我就可以自己对它做更多的研究,而不会不必要地打扰人们 我正在建立一个可湿性粉剂插件,将允许有人添加任何数量的框到任何数量的“交易”。基本上,事务1可以有3个盒子,称为苹果、水果、有机物。交易2可以有10个盒子。等等我想要一种方式,以最好的方式向最终用户展示这一点。作为一个初学者,我的

我正试图找出我的第一个“更复杂”的SQL应用程序,但在构思简单操作的最佳方法时遇到了一些困难。我理解代码,我认为,围绕着各种概念,但我想知道你认为最好的方式是继续进行的方式,更重要的是什么术语/如何称呼这种方法,这样我就可以自己对它做更多的研究,而不会不必要地打扰人们

我正在建立一个可湿性粉剂插件,将允许有人添加任何数量的框到任何数量的“交易”。基本上,事务1可以有3个盒子,称为苹果、水果、有机物。交易2可以有10个盒子。等等我想要一种方式,以最好的方式向最终用户展示这一点。作为一个初学者,我的(糟糕的,我肯定)本能是有一个键叫做,比如说,事务,这是一个逗号分隔的列表“1,2,3,4,5”。然后,在另一个表中,索引是1,2,3,对于每个键,我都有不同的框。我从数据库中获取第一个CSV列表,将其“分解”为一个数组,然后循环,从第二个表中获取反映这一点的键。但在第二个表中,每个“键”是否指向其他键?这就是我感到困惑的地方。这是最好的方法吗?我需要寻找什么样的代码编辑:这是我要找的东西的视觉图像:

Transaction 1: #12878321: Apples, Oranges, Pears
Transaction 2: #11239089: Berries, Oranges, Apples
Transaction 3: #89792834: Spaghetti, Berries, Oranges, Pears, Apples
我想在页面上显示这样的信息。因此,我需要将交易编号、随机代码和“购买了什么”(上面示例中的框)全部存储给最终用户

我已经在一个表上进行了插入、更新等操作,但从未连接(正确的单词?)两个表,不知道这是否是创建另一个WP表的方法


如果这是一个奇怪且冗长的问题,我很抱歉,但是在网上的1000个教程中,很难理解应该遵循哪一个,因为我对这些术语本身并不熟悉

不确定我是否理解您对数据的描述,但听起来确实像是一种关系(许多事务,每个事务都有许多相关的框)

类似的基本表格设置为:

transactions:
    userID - who the transaction belongs to
    transactionID - unique id for the transaction itself

boxes:
    transactionID - which transaction does this box belong to
    name  - oranges, apples, etc...
您没有提到这些框是否包含许多其他内容,但它只是第三个表,列出每个框的内容。

您想要的是(我认为)所谓的“多对多”关系。这些通常最好由关联表处理;关联表只有两列(相关);一个表中记录的ID,以及第二个表中记录的ID。这样,您就可以创建一个SQL语句,为您查找给定“事务”(表1中的记录)中存在的所有“框”(表2中的记录);您还可以创建一个查询,该查询将允许您查找引用表2中给定“框”记录的所有“事务”(表1中的记录)

为此,您需要三个表:

Transactions
ID,   Whatever else you keep for transactions

Boxes
ID,   Contents

TransactionBoxes
TransactionID,   BoxID

您已经定义了一对多关系。每个框都属于一个事务。@保罗:实际上,事务表是多对多链接。很多用户有很多事务,每个事务都有很多框。您的示例是否允许我指定有多少个桔子,多少个苹果?例如,它有多深?您已经为一对多关系定义了表,为用户定义了一个外部引用,这可能使它成为多对多关系,但我认为这不是OP想要的。在他们更新的示例中,请注意桔子是如何在多个事务中出现的。我不怀疑你的诚意,但OP似乎会被一张不包括在内的表格的规定所迷惑。@yonation:很可能是在box字段中。用户"57,交易"82,盒子"82342-56个橙子。(使用一些假身份证号码)。如果每个盒子可以容纳多个水果,您需要单独跟踪,那么您需要另一个表来列出内容。因此,每次用户进行交易时,我是否将其插入两个表中,即关联表和原始“csv”?还是忘了CSV?我如何知道有多少条记录,还是只从第二个表中选择ALL并在其中循环?你能给我指一个关于MySQL的好教程吗?