J'ai une couche d'accès aux données qui a des classes séparées pour chaque table de la base de données. Chaque classe crée des objets qui référencent une ligne dans la table, ils ont des fonctions create, update, delete et fetch. Ils étendent tous une classe DBObj. Ma question est, disons que je veux écrire une requête à SELECT * FROM table
, et l'avoir dans une fonction. Où est le meilleur endroit pour mettre ça? Dans la couche de gestion ou le groupe toutes les fonctions connexes dans leurs classes de couche de données respectives? C'est en PHP si cela compte, en utilisant MySQL.Couche de gestion, couche de données, où placer des requêtes?
Répondre
Met des requêtes SQL dans la couche de données. Pour une requête comme SELECT * FROM table
, que vous fassiez qu'une méthode de classe du modèle lui-même, ou une méthode d'un objet de gestionnaire de modèle, soit une question de style.
Mais la logique métier doit être extraite des détails arbitraires du schéma de base de données. La couche de gestion doit pouvoir demander à la couche de données toutes les instances d'un modèle, sans se soucier de la requête spécifique qui sera utilisée pour obtenir ces données.
Je viens juste de trouver votre question et j'ai pensé apporter un autre point de vue. Vous devriez construire une couche d'abstraction de données sur la plupart des applications (ne dira pas toutes, mais c'est proche), la plupart du temps définie comme une structure ORM. Attention cependant, le Data Access Layer (DAL) ne doit pas être confondu avec votre couche de domaine ou votre couche de logique applicative, en fonction de votre approche architecturale. Si vous voulez approfondir ce sujet, je pense que chaque développeur devrait, vous pouvez chercher Martin Fowler's articles, vous pouvez également lire this blog que j'ai fait il y a un certain temps, pas aussi important que M. Fowler, mais j'ai fait quelques réflexions à ce propos.
Cordialement, David
- 1. Couche d'annotation de données MVC: où placer l'instruction CurrentUICulture?
- 2. Retour des données de la couche de gestion à la couche de présentation
- 3. ASP.NET: couche de données indépendantes accses couche
- 4. Transmission de données entre la couche de gestion et la couche d'accès aux données - code incorrect?
- 5. Comment utiliser le framework d'entité dans une couche de gestion et/ou une couche de données?
- 6. Linq2nHibernate dans la couche de gestion?
- 7. Gestion des transactions dans la couche de service ou la couche de référentiel?
- 8. Couche de présentation faisant référence à la couche de données
- 9. Test de la couche de données
- 10. Que dois-je retourner de la couche d'interface utilisateur à la couche de gestion?
- 11. Où placer la session de gestion dans un modèle MVC?
- 12. Amélioration de ma couche d'accès aux données
- 13. Couche de service MVVM
- 14. Conception de la couche d'accès aux données
- 15. application web couche de données dis/avantages
- 16. Couche métier et données dans ASP.NET MVC
- 17. wireshark: Couche de données de capture uniquement
- 18. Problème de données vide - couche de données ou DAL?
- 19. Contrôleurs! = Couche métier?
- 20. Où placer des requêtes sql en jsp
- 21. Objet de couche de gestion LINQ-To-SQL DataContext
- 22. problème de couche simple [iphone]
- 23. Couche de service pouvant basculer entre la couche de service Web et la couche d'accès aux données
- 24. RIA paging avec couche de données personnalisée
- 25. Architecture de couche d'accès aux données WPF
- 26. Qu'est-ce qu'une couche de données sharepoint?
- 27. Objets métier et couche de données
- 28. Comment appeler DataAnnotations dans la couche de gestion (ASP.NET)?
- 29. .net couche de données ... idées Extendable plaît
- 30. Obtenir une couche de gestion pour communiquer avec la présentation
Que ORM envisagez-vous? –