A-A+

古董店的所有者不希望培训他的雇员关于SQL方面的知识 或者向他们提供关于数据库中的所有表的知

2022-08-12 10:15:41 问答库 阅读 195 次

问题详情

古董店的所有者不希望培训他的雇员关于SQL方面的知识,或者向他们提供关于数据库中的所有表的知识。他要求你编写一个程序,它将获取销售信息,然后自动执行所有的更改,包括根据需要执行任何错误检查。店员将输入顾客的电话号码(假定在Customer表中把它用作Customer_ID主键)、商品ID(来自商品上的标签)和销售价格。采用伪代码概括程序将如何记录销售。说明你将怎样使用事务来确保数据库更新的完整性。此外,解释你将在程序中执行的错误检查(比如验证顾客已经在数据库中),以及你的程序将怎样从如下问题中恢复: 顾客不在数据库中。 商品编号不在数据库中。 商品已出售。


请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:a.从Customer表中选择顾客。应该返回一行。如果是这样就继续执行b。如果没有返回行就必须向数据库中添加顾客。在Customer表中插入一个新的顾客行向数据库中添加这个新顾客。b.开始销售事务。c.从Item表中选择用于Itern_ID的行。应该返回一行。检查Price_sold列确保它为null(还没有销售)。如果Sale_price为null就继续执行d否则报告错误并回滚事务。如果没有用于Item_ID的行就报告错误并给店员提供输入校正的Item_ID的选项或者取消事务。如果店员取消销售就回滚事务。d.在Linejtem表和Sale表中插入新行。e.在Item表中更新用于这个Item_ID的Price_sold列。f.提交事务。
a.从Customer表中选择顾客。应该返回一行。如果是这样,就继续执行b。如果没有返回行,就必须向数据库中添加顾客。在Customer表中插入一个新的顾客行,向数据库中添加这个新顾客。b.开始销售事务。c.从Item表中选择用于Itern_ID的行。应该返回一行。检查Price_sold列,确保它为null(还没有销售)。如果Sale_price为null,就继续执行d,否则,报告错误并回滚事务。如果没有用于Item_ID的行,就报告错误,并给店员提供输入校正的Item_ID的选项,或者取消事务。如果店员取消销售,就回滚事务。d.在Linejtem表和Sale表中插入新行。e.在Item表中更新用于这个Item_ID的Price_sold列。f.提交事务。

考点:古董店,所有者