在一次采访中有人问我如何在不更改代码而仅更改数据库的情况下如何在应用程序中进行功能更改?例如
该应用程序是学生课程注册,条件是系统管理员可以提供仅申请不同课程中的单个课程的能力。
应用系统应为系统管理员所支持,以便将来学生可以申请多门课程。
该应用程序应易于管理员管理,以便直接在数据库端进行更改,而不会影响功能和操作方式。
我挠头,但由于对DB的了解不足,因此没有得出结论。
答案 0 :(得分:0)
对于这种要求,开发人员可以将两种功能都保留在代码库中,这将通过应在数据库中维护的标志来启用或禁用。 使用这种方法,您可以在不更改代码库的情况下管理启用/禁用功能。
答案 1 :(得分:0)
您可以利用数据库触发器/过程来定义插入和更新的规则。
例如,您可以创建一个触发器,该触发器将在插入到student_to_course联接表(带有“ student_id”,“ course_id”之类的列)之前运行,以检查该学生ID在表中是否不存在。这样会将学生限制为一门课程。
这样,DB尝试插入另一个学生课程关系时可能会抛出错误。如果应用程序具有足够的错误处理能力,则可以处理该错误。
稍后通过更改触发器,您可以允许学生申请多个课程。