一、使用资源配置来对数据库进行定义(DDL语句的应用)
1、添加资源配置(ps: 是在global标签里面的)
<resources>
<!--资源配置标签-->
<hello_setup>
<!--以组名_setup,命名当前的资源标签(资源标签名)-->
<setup>
<module>rib_Hello</module>
<!--所在的组-->
<class>rib_Hello_Model_Setup_Mysql4_Setup</class>
<!--资源类文件的位置-->
</setup>
<connection>
<!--连接方式-->
<use>core_setup</use>
</connection>
</hello_setup>
</resources>
2、以资源配置的路径创建资源类文件rib/Hello/Model/Setup/Mysql4/Setup.php
<?php
class rib_Hello_Model_Setup_Mysql4_Setup extends Mage_Core_Model_Resource_Setup {
}
?>
3、安装脚本(升级)(安装脚本只执行一次,可以执行sql的DDL语句)
1、路径是建立在sql目录下的helloworld_setup目录(是config.xml设置的资源标签名)下的mysql4-install-0.1.0.php (mysql4-upgrade-0.1.0-0.2.0.php)
2、升级脚本是在安装脚本同一个目录,命名是mysql4-upgrade-0.1.0-0.2.0.php(由哪个版本升级到哪个版本),建立好升级脚本后,修改config.xml 的版本号就会执行升级脚本里面的DDL语句了
3、对脚本含义的理解
<?php
//实例化已经建立的rib_Hello_Model_Setup_Mysql4_Setup类
$installer = $this;
//执行startSetup(封装了数据库连接函数)
$installer->startSetup();
//run方法里面执行sql语句操作
//{$installer->getTable('hello/post')}其中getTable是选择数据库表对应的模型,hello/post参数含义是先寻找到hello的模型,通过hello模型找到resourceModel标签下面的<post>资源实例代表的数据表
$installer->run("
ALTER TABLE `{$installer->getTable('hello/post')}`
ADD id int;
");
$installer->endSetup();
?>
二 、看到第六章 EAV模型相关知识
1、对EAV含义的理解不是很好
2、EAV模型的建立过程跟简单模式建立过程类似,继承的类不同
3、最后成功建立EAV数据库表,在添加属性的数据中出现错误,错误提示:Attempt to add an invalid object
4、还没有完成对EAV模型增查操作
EAV的理解:用于一些类似于购物网站的商品的存储,EAV主要分:实体、属性、值当储存实体很多,属性类别各异,可以用EAV模式存储这些实体