这可能是一个奇怪的问题,但我一直想知道,如果数据库设计得很好,为什么要定义自定义程序/功能?
这些功能/程序是什么?
我想我可以得到很多减票,但我无法抗拒。)
让我解释为什么我想知道。在当前工作场所,其他开发人员使用函数/过程来剪切具有由逗号分隔的多个值的字符串
在我的拙见中,这可以通过这些功能来实现
那么定义和使用函数或过程的其他情况是合法的呢?
答案 0 :(得分:1)
设计DBMS以满足(DBMS)潜在应用程序的所有可能范围是非常困难的。尽管可以使用内置函数来标记逗号分隔的值字符串,但是没有什么能阻止应用程序对分号分隔的字符串执行相同的操作,依此类推。
定义自定义函数和过程的能力是扩展应用程序功能或DBMS适应不同情况的自然方式。
在合法性方面,定义很难。可能,您的公司可能拥有包含常用功能或程序的代码存储库,可以重复使用。
这会回答你的问题吗?
答案 1 :(得分:1)
您可以创建自定义storad程序来解决无限问题。
简易管理数据; 使用事务控制创建操作。 优化多个操作的应用程序,对dbms执行单个请求,并执行dbms。 ...
但是,许多开发人员说这是不好的做法或有难闻的气味。
答案 2 :(得分:0)
使用功能和程序可以使您的DBMS更加灵活,例如 宣布 - 类型书籍是记录
(title varchar(50),
author varchar(50),
subject varchar(100),
book_id number);
book1 books;
book2 books;
PROCEDURE printbook(book books)IS
BEGIN
dbms_output.put_line('书名:'|| book.title);
dbms_output.put_line('图书作者:'|| book.author);
dbms_output.put_line('Book subject:'|| book.subject);
dbms_output.put_line('Book book_id:'|| book.book_id);
END;
BEGIN - 第1册规范
book1.title:='C编程';
book1.author:='Nuha Ali';
book1.subject:='C编程教程';
book1.book_id:= 6495407;
- 第2册规范
book2.title:='电信结算';
book2.author:='Zara Ali';
book2.subject:='电信计费教程';
book2.book_id:= 6495700;
- 使用程序打印书籍信息
printbook(BOOK1);
printbook(第二册);
END;
/ 在上面的“printbook”功能使您的查询更小更容易