java - 格式化多个数据以插入到 sqlite 中的单列中

标签 java android sqlite

我正在制作一个使用 SQL 数据库的应用程序,该数据库将用户购买的产品的名称和价格存储在单个列中。在我的sql数据库中,我有一个只有3列的表,分别是iduserNameproducts

我希望能够将不同产品的名称价格存储在产品列中。

例如,假设user1选择了两个项目,分别是花费200花费 500。我希望它像这样插入

INSERT INTO PRODUCT ("[P1: fish,200],[p2: meat, 500]")...

输出应该如下所示

Name: "user1"

Products:

1. Product name: "fish"
   Product price: "200"

2. Product name: "meat"
   Product price: "500"

我对 sql 很陌生,如果以前有人问过这个问题,我很抱歉。我尝试搜索,但答案没有回答我的问题,有些人说你不能在列中存储多个数据,但我确信如果它将所有内容作为文本插入数据库中,它可以存储它。我只是不知道如何格式化该语句,以便我可以轻松删除信息并按输出中所示的方式排列它们

最佳答案

不要尝试将数据列表放入单个列中。

相反,PRODUCTS 表的每一行都应该是列表的一个元素。

我想说你的数据库应该是这样的:

PRODUCTS
  PURCHASE_ID  | PRODUCT_NAME | PRODUCT_PRICE
  -------------+--------------+--------------
  1            | oatmeal      | 2.49
  1            | eggs         | 0.79
  1            | cereal       | 2.99
  2            | milk         | 1.25
  2            | chicken      | 7.49
  2            | cereal       | 2.99
  3            | energy drink | 4.25


PURCHASES 
  ID | USER_NAME
  ---+----------
  1  | billy bob 
  2  | john smith
  3  | mark brown

在本例中,PRODUCTS->PURCHASE_ID 是与 PURCHASES->ID 配对的外键

要获取比利·鲍勃购买的产品:

SELECT (PRODUCT_NAME, PRODUCT_PRICE) FROM PRODUCTS WHERE PRUCHASE_ID == 1

关于java - 格式化多个数据以插入到 sqlite 中的单列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47801412/

相关文章:

ios - 将 Core Data/SQLite 数据库下载到应用程序中?

node.js - 带有 iojs、koa 和 yield 的 node-sqlite3

java - 如何在android中的剩余文本中添加文本

java - 高度 MapFragment 布局不起作用

java - 如何从 SQLite 数据库读取数据?

安卓 : References to a Context and memory leaks

Java EE Eclipse 项目结构

java - Java Web Start 运行什么?

android - pt 中的文本大小不适用于 Samsung Galaxy S2 i9108

sqlite - db.RunInTransaction 是否总是需要一种方法来检查或处理回滚?