2011-06-29 7 views
6

J'utilise RedBean ORM pour écrire du code et je me demandais si je peux charger/restituer seulement quelques champs de la table de DB. Je sais qu'il existe une méthode de chargement mais cela donne une table entière en tant que bean. Je souhaite obtenir seulement quelques champs? Heh, quand je l'ai écrit, j'ai commencé à me demander si ce n'est pas contre RedBean pattern (ou ORM), car obtenir seulement quelques valeurs va créer des objets/bean invalides (avec seulement quelques valeurs)? Je voulais faire un chargement paresseux de valeurs ... peut-être il y a un autre ORM (aussi simple que RedBean :) pour réaliser ceci?Récupérer seulement quelques champs dans RedBean

Répondre

3

Il n'a pas de sens pour charger seulement quelques champs d'un enregistrement:

  • En sélectionnant moins de champs que vous ne serez pas diminuer le nombre de requêtes
  • Il diminue wont la quantité de données qui doit être transféré (cela est plus lié au nombre de lignes)

De plus, RedBeanPHP charge déjà paresseux tous les champs relationnels, il n'est donc pas nécessaire de faire ce manuel. Si vous êtes intéressé que dans une utilisation unicellulaire:

R::getCell("select title from document where id = 1"); 

ou simplement saisir des champs d'un enregistrement:

R::getRow("select id,title from document where... "); 

Ces fonctions renvoient les dossiers, pas des haricots, c'est le meilleur moyen de traiter avec des champs et des lignes simples.

Espérons que cette réponse aide ...

+3

Désolé mais je ne suis pas d'accord. Imaginez un blog. Il a 200 messages avec beaucoup de texte dans la propriété 'body' de chacun. Si vous voulez afficher une liste de tous les messages, vous pouvez facilement manquer de mémoire en chargeant la propriété 'body' de tous. Mais la chose est que vous n'avez pas besoin de 'body' pour montrer la liste. Le chargement sélectif permettrait d'économiser la journée ici. Mais de toute façon, j'aime votre ORM et vous avez fait un très bon travail. Merci beaucoup: D –

Questions connexes