mysql - 数据库设计 SQL 和转换表
问题描述
我正在从事 SQL 的学术作业,我需要一些帮助来从更大的表模式中安排转换表。我的任务是为以下模式创建转换表:销售模式
这个问题特别问: 在这个数据库设计中哪些表可能被认为是转换表?仅为转换表提供表模式。
我不确定如何处理更大模式的转换表。到目前为止,我想出了:
TransTable1(ReceiptNumber, Prod_ID, SalesCode)
Primary Key: SalesCode
Foreign Key: ReceiptNumber
TransTable2(Invoice_Number, Item_Number, Prod_ID)
Primary Key: SalesCode
Foreign Key: ReceiptNumber
解决方案
表 Invoice 和 Invoice_Item 可以做成一张转换表,Inventory_Item 和 Inventory_Product 可以做成一张转换表。这是因为写在任何一个表上的触发器语句会直接影响另一个表。例如,Invoice 上的触发器直接影响 Invoice_Item。转换表可以设为只读。
CREATE TRIGGER Invoice_Trigger
AFTER UPDATE OF Quantity_Added ON Invoice_Item
REFERENCING Invoice_Item AS N_TABLE
NEW AS N_ROW
FOR EACH ROW
WHEN ((SELECT Item_Number FROM N_TABLE) > (*trigger condition comes here*)
BEGIN ATOMIC
VALUES(INFORM_SUPERVISOR(N_ROW.Item_Number,
N_ROW.Quantity_Added,
N_ROW.Invoice_Number));
END
推荐阅读
- tabs - Applescript - 打开一个新标签
- git - 以编程方式获取 git 将使用 `git checkout -` 跳转到的修订版
- php - Laravel,数据表,低效查询
- requirejs - RequireJS 2.3.5 - 如何使用 JQuery 3.2 和 Bootstrap 3.3.7
- typescript - 如何为已安装的模块使用本地打字稿声明文件?
- google-chrome - 具有多个参数的谷歌 chrome 搜索引擎
- angular - 用另一个替换 Angular 组件
- c# - 获取 Azure 函数时收到 500 状态代码
- r - 使用 ggplot2 对分组条进行排序
- android - 用 smali 文件反应 Native Multidex