Về DAO & Model

139 views
Skip to first unread message

DucthuanX

unread,
Apr 25, 2008, 12:59:26 AM4/25/08
to PHPVietnam
Chào các bác,

Mình đang có thắc mắc về Data Access Object (DAO) và Model trong mô
hình MVC.

Theo mình hiểu thì Model thực hiện tất cả các công việc có liên quan
đến các bộ phận lưu trữ dữ liệu (RDBMS, File System, XML...): xuất -
nhập.

Mình đang thắc mắc về DAO và mối quan hệ của nó với Model.

Trên cùng một trang PHPPatterns nó lại có 2 ví dụ khác hẳn nhau về
DAO:
1/ http://www.phppatterns.com/docs/design/data_access_object_pattern_more_widgets
2/ http://www.phppatterns.com/docs/design/archive/model_view_controller_pattern

Trong 1/ thì lớp DAO (LogDao) là nơi chứa các câu query SQL execute
thông qua lớp DataAccess, còn trong 2/ thì ProductModel là nơi chứa
các câu SQL và DAO thì lại là 1 lớp tương tác với DB (tương đương với
lớp DataAccess trong 1/)

Trong 1 ví dụ khác (http://www.odi.ch/prog/design/php/guide.php) thì
DAO là lớp chứa các câu SQL.

Vậy rốt cuộc DAO nó là cái gì và quan hệ của nó với Model, vị trí của
nó trong MVC là như thế nào?

Thanks.

web20vn.com

unread,
Apr 25, 2008, 1:47:46 AM4/25/08
to PHPVietnam
$this->model=& new LogModel($logDao);

On Apr 25, 11:59 am, DucthuanX <ducth...@gmail.com> wrote:
> Chào các bác,
>
> Mình đang có thắc mắc về Data Access Object (DAO) và Model trong mô
> hình MVC.
>
> Theo mình hiểu thì Model thực hiện tất cả các công việc có liên quan
> đến các bộ phận lưu trữ dữ liệu (RDBMS, File System, XML...): xuất -
> nhập.
>
> Mình đang thắc mắc về DAO và mối quan hệ của nó với Model.
>
> Trên cùng một trang PHPPatterns nó lại có 2 ví dụ khác hẳn nhau về
> DAO:
> 1/http://www.phppatterns.com/docs/design/data_access_object_pattern_mor...
> 2/http://www.phppatterns.com/docs/design/archive/model_view_controller_...

web20vn.com

unread,
Apr 25, 2008, 1:52:08 AM4/25/08
to PHPVietnam
$this->model=& new LogModel($logDao);

DucthuanX

unread,
Apr 25, 2008, 3:12:18 AM4/25/08
to PHPVietnam
Cảm ơn bác nhưng điều đó chưa giải quyết được thắc mắc của em: trong
1/ thì DAO là nơi chứa SQL, còn trong 2/ thì Model là nơi chứa SQL. Em
vẫn chưa rõ bản chất Dao như thế nào và nó đứng ở đâu trong MVC.

On Apr 25, 12:52 pm, "web20vn.com" <lekhac...@gmail.com> wrote:
> $this->model=& new LogModel($logDao);
>
> DucthuanX wrote:
> > Chào các bác,
>
> > Mình đang có thắc mắc về Data Access Object (DAO) và Model trong mô
> > hình MVC.
>
> > Theo mình hiểu thì Model thực hiện tất cả các công việc có liên quan
> > đến các bộ phận lưu trữ dữ liệu (RDBMS, File System, XML...): xuất -
> > nhập.
>
> > Mình đang thắc mắc về DAO và mối quan hệ của nó với Model.
>
> > Trên cùng một trang PHPPatterns nó lại có 2 ví dụ khác hẳn nhau về
> > DAO:
> > 1/http://www.phppatterns.com/docs/design/data_access_object_pattern_mor...
> > 2/http://www.phppatterns.com/docs/design/archive/model_view_controller_...

web20vn.com

unread,
Apr 25, 2008, 12:12:38 PM4/25/08
to PHPVietnam
Mình thấy ở 2/, ProductModel là DAO chứ, DataAccess mới là lớp tương
tác CSDL. Chắc là do tên biến làm bạn hiểu nhầm, có thể ý tác giả ở
đây muốn nhấn mạnh cần phải có DataAccess để điều khiển DAO,
DataAccess được tạo ra là để phục vụ cho việc thực thi các DAO.
Reply all
Reply to author
Forward
0 new messages