Question

À l'heure actuelle, j'ai une classe d'accès de base de données nommée DB, qui utilise PDO. Je alors une poignée de sous-classes pour accéder à chaque table:

  • Users
  • Images
  • Galleries
  • Text
  • Videos

C'était bien quand j'ai commencé mon projet, mais maintenant, je ne sais pas si c'est ce grand, comme je l'ai une méthode pour chaque requête de base de données que j'utilise dans chacune de ces classes. Par exemple:

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)

Eh bien, vous voyez l'idée. Je suis l'ajout de ces méthodes comme le besoin d'eux, et dans le développement, je commence en utilisant simplement la classe DB:

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

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

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

Alors, je requêtes de test avec ma classe de DB, puis quand ils travaillent, je les envelopper dans une méthode de la classe qui lui est lié (classe d'image pour la table d'images, classe Galeries pour le tableau des galeries, etc.).

Je me sens comme cela va continuer de croître et de plus en plus que j'ajouter de nouvelles fonctionnalités plus tard (qui peut être OK, mais je ne suis pas certain). Quelqu'un peut-il critiquer ma méthode et / ou fournir des solutions alternatives?

Merci!

Était-ce utile?

La solution

Non, cela semble assez bon. Vous semblez avoir une couche d'abstraction solide entre la logique métier et l'accès aux données (Ceci est appelé modèle Data Mapper ).

Le seul problème avec ce gros est d'obtenir, que vous pourriez vous retrouver avec des méthodes qui se chevauchent. Vous devriez aussi essayer de maintenir un Convenction de nommage standard dans les deux classes.

En images la méthode est :: Images insertNew et dans les galeries il est Galeries:. Createnew

Avez-vous des modèles réellement? Parce que à quoi il ressemble est que vous avez beaucoup de requêtes pour assembler des valeurs uniques, mais pas des objets entiers.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top