答案 0 :(得分:1)
不能使用同一主键使用多行。对于每个项,您都必须创建单独的行。
如果要实现这些功能,则有两种方法:
1)创建主表:其中包含除项目信息以外的所有行信息。
创建子表:通过使用main_table_id作为forgin键包含所有项目信息。
2)您可以创建项目列并将所有项目和数量存储为JSON格式。(mysql> = 5.7支持json格式):
id Item_data (json format) date
1 {["name":"Pen","quantity":10],["name":"xyz","quantity":1]} 2019/02/13
2 {["name":"gfdgf","quantity":10],["name":"asa","quantity":1]} 2019/02/13
答案 1 :(得分:0)
您遇到的情况有3种选择:
序列化数据(请参见下面的答案)。注意,几乎不可能对这些数据运行查询。
为您的项目使用额外的表格。然后使用外键将此项目连接到您的主表
使用无SQL数据库(例如MongoDB)。在no-sql数据库中,可以存储带有多个子对象的完整“对象”(称为文档)
答案 2 :(得分:0)
在为PHP编写API时遇到了同样的问题。
尝试此操作,将您的商品名称,数量和日期声明为TEXT,然后在这些字段中插入嵌套的JSON。
即
//while adding to DB json will look like
"[{ABC},{PQR},{XYZ}]","[{23},{56},{14}]","[{23/05/1900 12:00 GMT},{23/05/1908 12:00 GMT},{23/05/1980 12:00 GMT}]"
所以
"[{ABC},{PQR},{XYZ}]"
转到item_name列
"[{23},{56},{14}]"
转到数量列
"[{23/05/1900 12:00 GMT},{23/05/1908 12:00 GMT},{23/05/1980 12:00 GMT}]"
转到日期列
简单的字符串或文本。这是我的表格HTML代码(忽略样式☺)
<table>
<thead>
<tr>
<td>ITEM_NAME</td>
<td>QUANTITY</td>
<td>DATE</td>
</tr>
</thead>
<tbody>
<tr>
<td>ABC</td>
<td>23</td>
<td>23/05/1900 12:00 GMT</td>
</tr>
<tr>
<td>PQR</td>
<td>56</td>
<td>23/05/1908 12:00 GMT</td>
</tr>
<tr>
<td>XYZ</td>
<td>14</td>
<td>23/05/1980 12:00 GMT</td>
</tr>
</tbody>
因此,在添加到数据库时,您需要先将数据推送到对象,然后 Stringyfy ,然后将其发送到数据库。 从数据库中获取并再次显示给UI时,您需要解析这些字符串回到对象,然后可以像应用嵌套对象一样应用循环。
快乐编码☻