目前,我有一个数据库的接入类命名的 DB, ,其使用 PDO.然后,我有一些子类访问的各表:

  • Users
  • Images
  • Galleries
  • Text
  • Videos

这是不错的,当我第一次开始了我的项目,但现在我不知道如果这是巨大的,因为我有一个方法每一个数据库的查询,我利用在每一个这些课程。例如:

Images::insertNew($filename)
Images::getTotalInGallery($galleryId)
Images::getAllInGallery($galleryId, $fetchStyle)
Images::updateDescription($imageId, $description)
Images::updateGallery($imageId, $galleryId, $orderNum)
Images::getSingle($imageId)
Images::getFilename($imageId)
Images::getImageIdByFilename($filename)


Galleries::getNameById($galleryId)
Galleries::getAll()
Galleries::getMaxImages($galleryId)
Galleries::checkIfExists($galleryId)
Galleries::createNew($galleryName)
Galleries::getById($galleryId)
Galleries::delete($galleryId)

嗯,你的想法。我已经加入这些方法作为对他们的需要出现,并在发展,我开始只是使用 DB 级:

//Execute a query
DB::query($query);

//Get a single row
$row = DB::getSingleRow($query);

//Get multiple rows
$rows = DB::getMultipleRows($query);

所以,我试查询与我的数据库类,那么当他们工作,我的包裹他们在一个类方法,是相关的(图像类图像表、画廊流的画廊表,等等)。

我觉得这会持续增长和日益增长,因为我加的新功能后来(可以确定,但我不肯定的).任何人可以批评我的方法和/或提供替代解决方案?

谢谢!

有帮助吗?

解决方案

不,实际上,这听起来很好。你似乎有一个坚实的抽象层之间的业务逻辑和数据访问(这是被称为 数据映射图案).

唯一的问题与这个越来越大,这最终结果可能与方法的重叠。你也应该试着保持一个标准命名convenction跨两种类。

在图像的方法是像::insertNew和在画廊,它是画廊:createNew.

你真有型号?因为什么它看起来像是,你有很多的查询来装配单价值,而不是整个的对象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top