MySQL-如何设计一个灵活的数据库使接口API代码改动较少
需要设计一个数据库,就是会有很多活的条件,这些条件都会封装成方法,请问怎么设计才能以后不会频繁的动代码
类似于需要满足这些条件
1
1. 申请人账号注册周期在半年以上!
2. 申请人必须加入公社!
3. 申请人(XX)被关注度100人以上,(需是真实有效)!
4. 申请人必须开通荣誉室并且达到一定丰满度(待定)
5. 申请人必须填写完整个人资料!
6. 申请人必须是绑定手机用户!
就是这些也是可能变的,然后把方法都也写进一个库中,方便调用
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
像这样的需求,一般都是直接以PHP数组的形式写成配置文件,然后把对这个配置文件封装一个调用接口,可以在任何地方调用,当需要判断用户信息时,只要获取这个USER的配置文件信息,再对其进行验证即可,由于它是一个数组,所以在任何时候都可以添加更多的条件。
例如:
$config['user_cond'] = array(
'is_mobile' => 'true', //必须绑定手机
'register_time' => '180', //注册时间
......
);
我觉得只要把那些条件作为全局变量设置好,把功能划分清楚,就可以很好地减少代码的修改了。
可以考虑把查询条件写成配制文件的形式,增加或修改条件只需要修改这个配制文件即可,程序在初始化时读取条件后进行解析。配制文件可以类似这种:
<?xml version="1.0"?>
<!-- logic 1:大于 0:等于 -1小于 -->
<configuration>
<condition>
<field>RegDates</field>
<value>60</value>
<logic>1</logic>
</condition>
<condition>
<field>focus</field>
<value>100</value>
<logic>1</logic>
</condition>
...
</configuration>
申请人账号注册周期在半年以上!
申请人必须加入公社!
申请人(XX)被关注度100人以上,(需是真实有效)!
申请人必须开通荣誉室并且达到一定丰满度(待定)
申请人必须填写完整个人资料!
申请人必须是绑定手机用户!
以上这些信息都在用户表中可以做冗余,以上这些条件基本都是0,1值
比较通用的调用写法,不过要注意下安全
//表字段名,比较运算符,阀值
$filterArray = array(
'uid'=array('=',123456),//申请人账号ID=123456
'registtime'=array('>',180 * 24 * 3600),//申请人账号注册周期在半年以上!
'isincommune'=array('=',1),//申请人必须加入公社
/**@todo*/
}
function filter($filterArray){
/**@todo*/
}
创建一个config.user.php
<?php
// 申请人账号注册周期在半年以上
$config['user']['register_time'] = '';
// 申请人必须加入公社
$config['user']['add_gongshe'] = '';
/.........
?>
像上面这样的配置数据,你想添加多少就添加多少。然后再你的入库文件里include该文件后,把变量$config设置成global就可以了。然后在你系统任何地方只要调用$config['user']['register_time']就可以了,如需要改变数据的值,只修改配置文件即可!