好的,所以我考虑实现Active Record Design Pattern,用于在MySQL数据库中的某些表上映射类。
问题是,我想要一个通用类,它将在我的表中进行混乱,根据选择的属性(来自我的数据库的字段)进行基本的CRUD事务。
所以我有CRUD方法,我想根据传递给对象的属性来选择,我使用__get和__set方法访问属性。
我考虑过使用一个数组,将它的键作为表前缀,它的值是另一个包含每个表的属性列表的数组。
但我认为这是复杂的,因为我必须通过整个数组来随机选择指定的表。
你能指点一些我可以使用的设计技巧吗? 谢谢!
答案 0 :(得分:0)
使用预构建的库,如Doctrine,Propel或PHPActiveRecord,可以从现有的DB Schema生成类文件。另请参阅http://martinfowler.com/eaaCatalog/index.html,了解有关对象关系映射中使用的基本模式的一些想法。
答案 1 :(得分:0)
如果要解决的问题是"处理表格"那就是实施的方式。
您希望执行哪些命令?插入记录,删除记录?
创建表示表的实体表,表示列的值对象列,表示表行的记录,以及细粒度尽可能多。
然后你就可以使用每一张桌了。
用法应该如下:
<?php
$usersTable = new Table($connection, 'users');
// sample search
$userRow = new Record('user');
$usersTable->find(array('id' => 1), $userRow);
// sample insert
$row = new Record('users', array('id' => 1, 'name' => 'jose'));
$result = $usersTable->insert($row);
但是只会建议那是真正的问题,否则你应该代表商业实体:用户,订单等。