数据库调整所遵循的“开闭原则”简介
数据库调整也可以遵循“开闭原则”的,本文我们就通过一个具体的实例来介绍这部分内容,首先如如果在原表上改,牵动太大,所以就想到了面向对象的“开闭原则”,在不改变原表的同时,添加一个附加表,即和原表有相同的主键,并且是一对一的关系(有时,如果一张表太复杂,字段太多,我们也可以用这个方法把复杂表进行拆分),添加后的结构如下:
这样在不改原表的基础上,就完成的需求的变更。
我的需求改动还涉及到了跨域问题,用jsonp解决的,实例代码如下:
- <script>
- $(function() {
- $("#btn").click(function() {
- $.ajax({
- type: "GET",
- dataType: "jsonp",
- jsonp: "jsonpcallback",
- data: { userid: '<%=Standard.ClientHelper.Current.UserInfo.ID %>',
- username: '<%=Standard.ClientHelper.Current.UserInfo.UserName %>',
- _email: $("#email").val() },
- url: "http://sso.c2cedu.com/Register/SendEmailInsertInvite",
- success: function(data) {
- //填写用户激活后送C币的逻辑
- if (data.success == true)
- alert("邀请成功");
- else
- alert("邀请失败");
- }
- });
- });
- });
- </script>
另外一网站的CS端程序如下:
- public ContentResult SendEmailInsertInvite(string userid, string username, string _email)
- {
- string queryStr = Request.QueryString["jsonpcallback"];
- string res = "{success:false}";
- try
- {
- res = "{success:true}";
- #region 发邀请邮件,并将checkcode记录和邀请表记录插入
- Array.ForEach(_email.Split(','), i =>
- {
- CheckCodeRecord checkCodeRecord = new CheckCodeRecord
- //有几个email地址,就产生几个checkcode记录
- {
- CheckCode = VCommons.Utils.GetNewGuid(),
- Description = "邀请送C币"
- };
- UserInviteCCoin entity = _UserBaseServices.GetUserInviteCCoinByUserId(userid)
- ?? new UserInviteCCoin
- {
- UserID = userid,
- InviteID = VCommons.Utils.GetNewGuid(),
- };
- entity.IPAddr = checkCodeRecord.CheckCode;
- _UserBaseServices.AddInviteRecord(entity, checkCodeRecord);
- email.UserInviteEmail(entity, username, i);
- });
- #endregion
- }
- catch (Exception)
- {
- throw;
- }
- return Content(queryStr + "(" + res + ")");
- }
以上就是数据库调整所遵循的“开闭原则”的相关知识的介绍,本文我们就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】
- SQL Server 2005导入Oracle 10g的C#源码
- SQL Server 2008快速清理日志文件的代码
- SQL Server 2008数据库中CDC的功能使用及说明
- SQL Server 2008阻止保存要求重新创建表的更改的问题
- SQL Server数据库row_number() over() 来自动产生行号
版权声明:
作者:后浪云
链接:https://www.idc.net/help/311579/
文章版权归作者所有,未经允许请勿转载。
THE END