我的问题是:如果我创建基于MySQL中的数据PHP对象,不是我双存储数据,因此浪费资源,拖慢我的应用程序?PHP中的OOD不是双重存储在MySQL中浪费资源吗?
- 难道人们只是为了将MySQL数据缓存为允许更快访问的对象而这样做:因为用户在每次切换到新产品时都不查询数据库?
- 他们只是为了不那么复杂的代码吗?
- 什么是在小MVC中处理这个问题的恰当方法?即在会议开始时,模型是否应创建所有产品的阵列?是否应该永远不会有所有产品的数组,并且每次询问数据库并将这些数据每次转换为新的Product对象?
如果你愿意,你可以对我还是想问阅读...
我得到这并不重要,我的应用程序的大小,但我想开始吧。 我有一个基本的小MVC我和我们将产品称为项目的数据库。只是为了方便,决定是否/何时/从MySQL数据到PHP对象。
这是我的文件树看起来像:
root
controller
Controller.php
model
Model.php
Product.php
view
Products.php
Product.php
index.php
下面是相关代码:
// Controller.php
if (!isset($_GET['product'])) {
- getProducts() && include view/Products
} else {
- getProduct('product') && include view/Product
}
// Model.php
getProducts() {
while($row = $stmt->fetch_assoc()) {
$array[$i] = new Product($row["id"], $row["name"], $row["price"]);
$i++;
}
return $array;
}
getProduct($id) {
$allProducts = $this->getProducts();
return $allProducts[$id];
}
// Products view
<?php foreach ($products as $product): ?>
display $product->id and $product->name
<?php endforeach; ?>
// Product view
display $product->name and $product->description and $product->price ...
我不明白。你希望如何在数据库中使用数据而不先将数据带入内存(即将数据作为对象或数组存储在变量中)? – sgroves 2013-05-08 19:16:42
我不确定你在问什么。这是关于为什么要在数据库中创建类和对象表示的数据...? – deceze 2013-05-08 19:17:06