sql - 如何从sql中的另一个表中引用未知数量的行?
问题描述
我正在为我父母的比萨店开发一个系统。我的编程经验很少,我想做一个像样的 SQL 数据库,这样当我在编码方面变得更好时,它会更容易维护和改进。
到目前为止,我已经想出了以下内容(使用 db 浏览器帮助我进行可视化):
CREATE TABLE IF NOT EXISTS "client" (
"id" INTEGER,
"name" TEXT,
"phone" TEXT,
"neighborhood" TEXT,
"address" TEXT,
PRIMARY KEY("id")
);
CREATE TABLE IF NOT EXISTS "product" (
"id" INTEGER,
"type" TEXT,
"flavour" TEXT,
"ingredients" TEXT,
"price" REAL,
PRIMARY KEY("id")
);
我将创建第三个表,并且想知道当客户订购多个产品时"order"
如何引用多个表?product.id
解决方案
教科书的解决方案是创建一个映射表来关联产品和订单。
CREATE TABLE IF NOT EXISTS "orders" (
"id" INTEGER,
"order_date" DATETIME,
-- Any other columns you may need
PRIMARY KEY("id")
);
CREATE TABLE IF NOT EXISTS "order_products" (
"product_id" INTEGER,
"order_id" INTEGER,
FOREIGN KEY("product_id") REFERENCES product("id"),
FOREIGN KEY("order_id") REFERENCES orders("id"),
PRIMARY KEY("product_id", "order_id")
);
推荐阅读
- c# - 具有多个构造函数参数和选项的 DelegatingHandler 的依赖注入
- arrays - 给定两个数组,找到下一个更大的元素
- sql-server - 检查触发器中是否有任何列更改
- reactjs - 链接到后匹配和位置道具未更新
- .net - 如果由 IIS 6.0 或由 VB6 构建的对象加载,具有 Com 互操作行为的 DLL.NET 会有所不同
- python - 如何访问模板中的 MTM 字段属性
- javascript - Mongoose 或 Query 不返回任何内容
- ios - 可以同时使用来自多个线程的 Data 对象吗?
- amazon-ec2 - 是否可以基于 CPUReservation 对该自动缩放组中的实例进行自动缩放组缩放
- laravel - 生成带有用户名字和姓氏首字母的文本的图像