CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY,
description TEXT,
reference TEXT
-- This is where you'd want to add your list of order lines
);
-- Instead, we'll create an orderline table referring back to the orders
CREATE TABLE orderlines (
id INT NOT NULL PRIMARY KEY,
description TEXT,
order_id INT REFERENCES orders(id)
);
现在您可以将数组值(我现在假设为订单行)放入它们自己的单独表中。要查询它们,你可以这样做
SELECT * FROM orders
LEFT JOIN orderlines ON orderlines.order_id = orders.id;
正如评论中提到的,数组不是类型。您可以选择使用一个单独的表来保存数组中的元素,并让它们有一个引用原始表的外键,或者每次将数组解析为字符串并将其存储为文本,具体取决于您的需要。
现在您可以将数组值(我现在假设为订单行)放入它们自己的单独表中。要查询它们,你可以这样做
您可以使用子查询来足够聪明地返回一个数组,尤其是在您的应用程序中。