Je souhaite mettre en place une fonction de réduction de produit dans RavenDB.Comment travailler avec des réductions dans RavenDB
produit doc:
{
"RegularPrice": 10.00,
"ReferencePrice": 0.0,
"Categories": [
"A",
"B",
"C"
]
}
Maintenant, par exemple, je voudrais donner un rabais pour tous les produits dans la catégorie "A". Donc, je la carte catégorie sur le taux d'actualisation dans un rabais tel document:
{
"ProductDiscount": {
"A": 20.0
}
}
La question est de savoir comment puis-je calculer la ReferencePrice et de stocker ou mettre à jour lorsque:
- Un nouveau produit est ajouté?
- Le prix régulier est mis à jour?
- Le document sur les remises est-il mis à jour?
Il semble que je devrais gérer cela avec un déclencheur. Mais je ne suis pas sur!
merci pour votre réponse. En effet, un produit est lié à plusieurs catégories. En cas de remises multiples, le prix calculé le plus bas sera défini. Bonnes suggestions et idées, mais certaines d'entre elles ne sont pas utiles dans mon contexte.L'utilisation de LoadDocument pendant que l'indexation ne met pas à jour les documents - Trigger est une option, mais la maintenance sera un problème (de plus, je n'ai aucune idée de la façon de réaliser la solution avec un trigger) - La requête de patch scriptée est une option aussi, mais je préfère un mécanisme qui évite le travail manuel. - Il n'est pas souhaitable de calculer le prix au moment de l'exécution ... – MED
Il reste donc une option sur; Ensemble de propriétés indexées. Je l'ai essayé ce qui suit: L'indice qui calcule le (escompte) prix: 'Carte = produits => de p dans les produits de c dans p.Categories sélectionner de nouveaux { ProductId = p.Id, ReferencePrice = p.RegularPrice * ((100 - LoadDocument ("Discount /" + c) .Amount)/100) }; ' ... –
MED
Et un document qui mApps les champs d'index sur les propriétés du document produit – MED