
发表日期: 2021-04-26 10:26:09 浏览次数:72
启东申请400电话费用【启东企业全国热线电话办理】启东开通400电话电信价格、启东微信公众号代运营外包托管、启东网店编辑装修美工、启东网站推广优化大概需要多少钱
启东市,江苏省直辖,南通市代管,位于江苏省东南端,长江入海口北岸,是江苏省日出最早的地方。 [1] 户籍总人口110.35万,常住人口94.95万(2019年)。 [2] 截至2020年6月,启东市下辖9个镇。 [3]
后周显德五年(958年),置海门县于东布洲,隶于通州,海门县域包括今启东中部、北部地区。民国十七年(1928年),于崇明外沙设启东县。1989年,撤销启东县,设立县级启东市。 [14] [56]
启东是全国对外开放口岸 [4] 、中国建筑之乡 [5] 、国家卫生城市 [6] 、国家园林城市 [7] 、全国文明城市 [8] 、国家级生态示范区 [9] 、节水型社会建设达标县 [10] 、紧密型县域医共体建设试点县 [11] 、革命文物保护利用片区分县 [12] ,海洋经济之乡、电动工具之乡、建筑之乡、教育之乡、版画之乡。 [1]
2019年,启东市地区生产总值1157.55亿元,第一产业增加值79.64亿元,第二产业增加值581.29亿元,第三产业增加值496.62亿元。三次产业比为6.9:50.2:42.9。人均地区生产总值121879元。
表2-17 demo分表示例
数据库表 | 数据库实例 |
|---|---|
tbl_demo | db_demo |
tbl_demo_0 | db_demo |
tbl_demo_1 | db_demo |
tbl_demo_2 | db_demo |
首先,需要配置数据库的路由规则。这里的demo表存储比较简单,即有3张分表tbl_demo_0、tbl_demo_1、tbl_demo_2,缺省主表tbl_demo是必要的,当分表不存在时将会使用该缺省主表。数据库的路由规则在前面所说的数据库配置文件./Config/dbs.php中,其中tables为数据库表的配置信息以及与数据库实例的映射关系。因此可以在tables选项中添加此demo表的相关配置。
return array(
... ...
'tables' => array(
'demo' => array(
'prefix' => 'tbl_',
'key' => 'id',
'map' => array(
array('db' => 'db_demo'),
array('start' => 0, 'end' => 2, 'db' => 'db_demo'),
),
),
),);复制代码上面配置map选项中array('db' => 'db_demo')用于指定缺省主表使用db_demo数据库实例,而下一组映射关系则是用于配置连续在同一台数据库实例的分表区间,即tbl_demo_0、tbl_demo_1、tbl_demo_2都使用了db_demo数据库实例。
这里再侧重讲解一下map选项。map选项用于配置数据库表与数据库实例之前的映射关系,通俗来说就是指定哪张表使用哪个数据库。不管是否使用分表存储,都至少需要配置默认缺省主表。如:
'map' => array(
array('db' => 'db_demo'),)复制代码缺省主表的配置很简单,只需要配置使用哪个数据库实例即可。而当需要使用分表时,则要增加相应的映射关系配置。通常分表以“下划线 + 连续的自然数”为后缀,作为分表的标识。在配置时,对于使用同一个数据库实例的分表区间,可以配置成一组,并使用start下标和end下标来指定分表闭区间:[start, end]。如上面示例中,[0, 2]这一区间的分表使用了db_demo这一数据库实例,则可以添加配置成:
'map' => array(
array('db' => 'db_demo'),
array('start' => 0, 'end' => 2, 'db' => 'db_demo'),)复制代码假设,对于tbl_demo_2分表,需要调整成使用数据库实例db_new,则可能调整配置成:
'map' => array(
array('db' => 'db_demo'),
array('start' => 0, 'end' => 1, 'db' => 'db_demo'),
array('start' => 2, 'end' => 2, 'db' => 'db_new'),)复制代码配置好路由规则后,就可以使用脚本命令生成建表语句。把数据库表的基本建表语句保存到./Data目录下,文件名与数据库表名相同,后缀统一为“.sql”。如这里的./Data/demo.sql文件。
`name` varchar(11) DEFAULT NULL,复制代码
需要注意的是,这里说的基本建表语句是指:仅是这个表所特有的字段,排除已固定公共有的自增主键id、扩展字段ext_data和CREATE TABLE关键字等。
然后可以使用phalapi-buildsqls脚本命令,快速自动生成demo缺省主表和全部分表的建表SQL语句。如下:
$ ./PhalApi/phalapi-buildsqls ./Config/dbs.php demo复制代码
正常情况下,会生成类似以下的SQL语句:
CREATE TABLE `demo` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(11) DEFAULT NULL, `ext_data` text COMMENT 'json data here', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `tpl_demo_0` ... ...;CREATE TABLE `tpl_demo_1` ... ...;CREATE TABLE `tpl_demo_2` ... ...;复制代码
在将上面的SQL语句导入数据库后,或者手动创建数据库表后,便可以像之前那样操作数据库了。下面是一些大家已经熟悉的示例:
DI()->notorm->demo->where('id', '1')->fetch();复制代码假设分别的规则是根据ID对3进行求余。当需要使用分表时,在使用Model基类的情况下,可以通过重写PhalApi_Model_NotORM::getTableName($id)实现相应的分表规则。
// $ vim ./Shop/Model/demo.php<?phpclass Model_Demo extends PhalApi_Model_NotORM {
protected function getTableName($id) {
$tableName = 'demo';
if ($id !== null) {
$tableName .= '_' . ($id % 3);
}
return $tableName;
}}复制代码然后,便可使用之前一样的CURD基本操作,但框架会自动匹配分表的映射。例如:
$model = new Model_Demo();$row = $model->get('3', 'id'); // 使用分表tbl_demo_0$row = $model->get('10', 'id'); // 使用分表tbl_demo_1$row = $model->get('2', 'id'); // 使用分表tbl_demo_2复制代码当使用全局方式获取NotORM实例时,则需要手动指定分表。上面的操作等效于下面使用全局NotORM实例并指定分表的实现。
$row = DI()->notorm->demo_0->where('id', '3')->fetch();$row = DI()->notorm->demo_1->where('id', '10')->fetch();$row = DI()->notorm->demo_2->where('id', '2')->fetch();复制代码回到使用Model基类的上下文,更进一步,我们可以通过$this->getORM($id)来获取分表的实例从而进行分表的操作。如:
<?phpclass Model_Demo extends PhalApi_Model_NotORM {
... ...
public function getNameById($id) {
$row = $this->getORM($id)->select('name')->fetchRow();
return !empty($row) ? $row['name'] : '';
}}复制代码通过传入不同的$id,即可获取相应的分表实例。
当需要使用多个数据库时,可以先在servers选项配置多组数据库实例,然后在tables选项中为不同的数据库表指定不同的数据库实例。
假设我们有两台数据库服务器,分别叫做db_A、db_B,即:
return array( 'servers' => array( 'db_A' => array( //db_A 'host' => '192.168.0.1', //数据库域名 ... ... ), 'db_B' => array( //db_B 'host' => '192.168.0.2', //数据库域名 ... ... ), ),复制代码
若db_A服务器中的数据库有表a_table_user、a_table_friends,而db_B服务器中的数据库有表b_table_article、b_table_comments,则:

启东申请400电话费用【启东企业全国热线电话办理】启东开通400电话电信价格、启东微信公众号代运营外包托管、启东网店编辑装修美工、启东网站推广优化大概需要多少钱
服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878