我在为我父母的比萨店开发一个系统。我几乎没有编程经验,我想做一个像样的sql数据库,这样当我在编码方面做得更好时,维护和改进就会更容易。
到目前为止,我提出了以下建议(使用db browser帮助我可视化):
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
当客户订购多个产品时?
2条答案
按热度按时间oyjwcjzk1#
教科书上的解决方案是创建一个Map表来关联产品和订单。
nfeuvbwi2#
您正在做的一些工作是数据建模。
客户可以有多个订单。
订单可以有多个产品。
产品可以有多种成分。
所以
order
table看起来像。。。如果希望数据库强制引用完整性,可以添加外键约束(订单上能不能有不在订单上的产品
product
table?一个不在场的人client
(下订单?)我会在中调整列名(并添加一些)
client
以及product
使您未来的代码更清晰。最后一个问题似乎是关于如何设计查询。您应该学习一些基本的sql技能(从您提供的ddl代码来看,您似乎已经走上了正轨。)
在sql server中,示例查询可能如下所示:
(我从未使用过sqlite,所以我不知道是否存在任何翻译问题。)
有很多书籍和网站可以帮助您进行数据建模和查询设计。