我的问题是关于在关系数据库中处理以下方案的通用问题。
首先,我知道SQL DBS和NoSQL DBS如何工作。但是我有一个小问题,我的知识还不够。这是我与SQL数据库有关的主要问题。
场景: 假设我们有一个包含许多产品的订单表:
const Order = sequelize.define('Order', {
delivery_time: DataTypes.DATE,
product_id: DataTypes.INTEGER,
}
const Product = sequelize.define('Product', {
name: { type: DataTypes.STRING, unique: true },
price: { type: DataTypes.INTEGER },
image: DataTypes.STRING,
}
所以我需要一个结构,每个订单中的产品都有2个字段: 1.product_id 2. count_of_product 。
在像MongoDB这样的NoSQL结构中,我们只需定义以下内容即可:
order : [
{
product_id,
count_of_product
}
]
因为一切都是文档。对? 我发现sequelize具有仅在Postgres SQL中支持的数组DataType。
https://sequelize.org/master/class/lib/data-types.js~ARRAY.html
我可以定义这样的东西吗?
products: DataTypes.ARRAY([{
count_of_product: DataTypes.DECIMAL,
product_id: DataTypes.INTEGER,
}])
我认为我不太了解SQL的概念,这种情况在SQL数据库中如何工作?当然,我可以使用DataTypes.TEXT,并在代码逻辑中做一些填充,但是我需要一种更好的方法。