我写房地产网站 具有选择和订购不动产的基本功能。哪些数据库模式(ORM,DAO,活动记录等)用于小型/中型项目?
它体积小/简单的项目,但我想它写在方式, 所以在未来我,或其他开发人员,可以把它变成中小型企业应用,而无需从头开始重写它 。
那么你可以建议我用什么样的模式来处理数据库呢?
现在我有这样的:
class db_DBConnection
{
// basic singleton pattern here...
}
// primary class to be extende by other table DAOs
abstract class db_Table
{
protected $table;
protected $order_by;
/**
* Executes specified query with prepared statements
* returns statement object, which can fetch data.
*
* @param $sql - SQL query to execute
* @param $params - bind values to markers through associative arrays
*/
protected function executeQuery($sql, $params = null)
{
$dbh = db_DBConnection::getConnection();
$stmt = $dbh->prepare($sql);
// binds values to markers and executes query
$stmt->execute($params);
return $stmt;
}
/**
* @param id - id of row to retrieve from database
*
* It sends SQL query and id to executeQuery
* function returns associative array, representing
* database row.
*/
public function find($id)
{
$sql = 'SELECT * FROM ' . $this->table . ' WHERE id=:id LIMIT 1';
// bind id
$params = array(':id' => $id);
// execute and return associative array
return $this->executeQuery($sql, $params)->fetch(PDO::FETCH_ASSOC);
}
public function findAll($quantity, $where)
{
// Returns array of
// associative arrays of table rows :)
// TODO: write this function
}
abstract protected function insert();
abstract protected function update();
abstract protected function delete();
// ...
*(参考)* [企业应用程序体系结构](http://martinfowler.com/eaaCatalog/index.html) – Gordon 2010-10-01 13:38:51
我发现很难向您建议任何事情,而不知道项目的真实世界要求手。无论你需要一个ORM还是一个框架,甚至PHP都不能根据你提供的细节决定。解释各种模式的优缺点超出了范围。 – Gordon 2010-10-01 14:19:34