Ohayo minna-kun!
Alors, je débute en Android. Je bricole plus qu'autre chose.
Je fais une app pour un resto/fast-food, permettant de commander à distance.
La gestion d'un panier classique, je pense pouvoir le mettre en place sans trop de problème.
Ici, dans le panier, je dois pouvoir contenir des produits, du style burger, boissons, etc.
Là où je bloque un peu, c'est au niveau des menus, qui sont aussi des produits, mais qui contiennent d'autres produits. Les menus doivent évidemment être aussi contenus dans le panier.
De plus, le prix d'un menu dépend du plat (la boisson ne change rien au prix)
Alors pour ce qui est du diagramme de classe, j'ai trouvé une solution (pas encore terminée mais bon): "Menu" qui hérite de "Produit", et un "Panier" contient une "Map<CategorieProduit, Integer>" (Integer = quantité)
=> Héritage et polymorphisme qui règle mon problème lol
Je vais sûrement modifier ça plus tard, c'était une solution provisoire à présenter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public class Produit { private long id; private String nom; private CategorieProduit categorie; private CategorieMenu categorieMenu; private double prix; private String imageReference; private long position; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public class Menu extends Produit { private static final float PRIX_SAUCE = 0.40f; private Produit boisson; private Produit plat; private Produit sauce; public Menu(Produit boisson, Produit plat) { setBoisson(boisson); setPlat(plat); } public Menu(Produit boisson, Produit plat, Produit sauce) { this(boisson, plat); setSauce(sauce); } // Getter & Setter public void setPrix () { if ((plat != null) && (boisson != null)) setPrix(plat.getCategorieMenu().getPrix() + (sauce != null ? PRIX_SAUCE : 0f)); } }Mon problème, c'est du côté base de données. Comment je dois transposer ça?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public class Panier { private Map<CategorieProduit, Integer> map; public Panier() { map = new HashMap<>(); } public void addProduit(Produit produit, int quantity) throws Exception { if (produit == null) throw new Exception(); int initQuantity = 0; if (map.containsKey(produit.getCategorie())) { initQuantity = map.get(produit.getCategorie()); } quantity += initQuantity; map.put(produit.getCategorie(), quantity); } public void addProduit(Menu menu, int quantity) throws Exception { if ((menu.getBoisson() == null) || (menu.getPlat() == null)) throw new Exception(); } }
J'ai fait un mini schéma. Il manque des tas d'infos, je le sais, ce sont les relations qui m'intéressent ici.
Dans ce schéma, je n'ai mis que les produits, pas les menus... Le "type_menu" est associé aux simples produits.
Comme le prix d'un menu dépend du plat qui est choisi, alors je stocke un type directement dans le produit, type que je récupère pour fixer le prix d'un menu.
Voici le schéma
Voilà mon problème, je ne sais pas comment représenter ça côté DB. Des idées? ^^
J'ai encore un autre problème, mais que je présenterai plus tard peut-être, il est moins urgent x)
Dans tous les cas, merci d'avance à tous ceux qui essaieront de m'aider ^^
Ridounet
Partager