Mit php5.2 und MySQL 4.1.22die Suche nach einem sauberen, effizienten Weg, um eine Reihe von Daten gegen bekannte Muster
ich auf etwas, das auf dem ersten, einfache schien gekommen zu passen, aber da habe mich ausgewichen in Bezug auf eine einfache, saubere Lösung.
Wir haben vordefinierte „Pakete“ von Produkt. Paket 1 kann die Produkte A, B und C enthalten. Paket 2 kann A, C, D und G enthalten usw. Die Pakete haben eine Größe von 3 bis 5 Produkten.
Nun kann ein Kunde alle 10 Produkte auswählen und ein „custom“ Paket machen. Da wir bereits bestimmte vordefinierte Pakete haben, möchten wir, wenn möglich, das benutzerdefinierte Paket mit kleineren vorhandenen Paketen (für die Versandfreundlichkeit) erstellen.
So wählt zum Beispiel ein Kunde ein 'benutzerdefiniertes Paket' der Produkte A, B, C, D, E und F. Wir haben bereits ein vordefiniertes Paket, das A, B und C namens Foo enthält. So würde der Auftrag dann Foo, D, E und F. seiner
Der Haken ist, die geringste Menge an einzelnen Positionen haben, durch die geringste Menge an Paketen gefolgt. Zum Beispiel:
benutzerdefiniertes Paket: A, B, C, D, E, F, G, H, I, J.
Predefined Verpackung (1): A, B, C, D, E
Predefined Package (2): A, B, C
Predefined Verpackung (3): D, E, F
Wenn ich einfach um die größte Übereinstimmung nehmen, dann ich habe 1 (5pc) Paket und 5 Einzelstücke. Weder Package (2) noch (3) können mit den verbleibenden Items erstellt werden.
Wenn ich tiefer schauen, finde ich, dass von Paketen nicht inbegriffen ist (1) I statt Paket bauen (2) und Verpackung (3). Was bedeutet, ich habe 2 Pakete und 4 einzelne Artikel (eine bessere Wahl in dieser Geschäftsregel).
Wie ich MySQL bin mit, ich bin unter der Zurückhaltung der nur eine Schicht von Unter wählen zur Verfügung zu haben (meines Wissens). Also muss diese Art in PHP ausgeführt werden. Ich habe mit array_intersect() betrachtet, um Übereinstimmungen zu ermitteln, aber jede gefundene Methode wächst exponentiell in Bezug auf die Verarbeitung, da die Anzahl der vordefinierten Pakete linear wächst.
Ich lief dies durch ein paar andere Coder Freunde und wieder, während es wie es schien eine einfache Antwort sein sollten wir alle, dass es nicht so einfach war gefunden, wie es scheint. Also dachte ich, ich würde es hier als nette Noodle Bahre posten. Vielen Dank im Voraus für Ihre Zeit!
+1 große Frage, eine, die ich keine Ahnung habe, wie ich antworten soll. Ich werde interessiert sein zu sehen, was Leute kommen mit –
Wie viele Produkte haben Sie und wie viele vorgefertigte Pakete? Es gibt ein paar andere mögliche Lösungen/Optimierungen, auf die ich näher eingehen werde, abhängig von deren Größe. –
Kann der Kunde das gleiche Produkt auch mehrmals wählen? –