KNOWLEDGE/知识

贝永智创“知识”栏目持续分享网页设计、小程序开发与UI/交互相关知识点,包含手机端页面视觉设计、布局规范、配色字体、组件交互、常见功能实现思路与上线注意事项。内容以实战经验为主,帮助企业与新手快速避坑、提升页面效果与转化。

您当前位置> 主页 > 知识 > 网站建设

数据库调整所遵循的“开闭原则”简介

发表时间:2026-02-04 08:04:33

文章作者:

浏览次数:

数据库调整也可以遵循“开闭原则”的,本文我们就通过一个具体的实例来介绍这部分内容,首先如假如在原表上改,牵动太大,所以就想到了面向对象的“开闭原则”,在不改变原表的同时,添加一个附加表,即和原表有相同的主键,并且是一对一的关系(有时,假如一张表太复杂,字段太多,我们也可以用这个方法把复杂表进行拆分),添加后的结构如下:

数据库调整所遵循的“开闭原则”简介

这样在不改原表的基础上,就完成的需求的变更。

我的需求改动还涉及到了跨域问题,用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 + ")");  

以上就是数据库调整所遵循的“开闭原则”的相关知识的介绍,本文我们就介绍到这里了,希望本次的介绍能够对您有所收获!

相关案例查看更多