PHP5.2 ve MySQL 4.1.22 kullanma
Ben ilk başta, basit çıktı, bir şey rastlamak ettik ama beri basit, temiz bir çözüm getirmedi bana yapmamış olan.
Biz ürün "paketleri" önceden tanımlanmış. Paket 1 o ürünler A, B ve C olabilir. Paket 2 paketleri 3'ten 5 ürün boyutu değişir, vb, içinde A, C, D ve G olabilir.
Şimdi, müşteri bulunan herhangi 10 ürün almak ve "özel" bir paket yapabilirsiniz. Biz zaten önceden tanımlanmış belli paketler var, biz mümkün (nakliye kolaylığı için) daha küçük mevcut paketleri ile özel bir paket oluşturmak istiyorum.
Yani, örneğin, bir müşteri ürün A, B, C, D, E ve F Biz zaten A, B ve C Foo adında içeren önceden tanımlanmış bir paket var bir 'özel paket' yaratmak için seçer. Yani, sipariş sonra Foo, D, E ve F olacaktır
Yakalamak paket en az miktarda ardından ürüne en az miktarda sahip bulunmaktadır. Örneğin:
Özel Paket: A, B, C, D, E, F, G, H, I, J
Önceden belirlenmiş paket (1): A, B, C, D, E
Önceden tanımlı Paketi (2): A, B, C
Önceden tanımlı Paketi (3): D, E, F
Ben sadece büyük maçı alırsak, o zaman ben 1 (5pc) paketi ve 5 ayrı ürün yok. Ne Paketi (2), ne de (3) geri kalan öğeleri ile inşa edilebilir.
Ben derin bakarsanız, ben paketi bina değil (1) yerine (2) paketi oluşturmak olduğunu bulmak ve paketi (3). Hangi Ben 2 paket ve 4 bireysel öğeler (bu buisiness kural daha iyi bir seçim) var demektir.
MySQL kullanarak kulüpler gibi, ben sadece alt (benim gördüğüm kadarıyla) mevcut seçtiğiniz bir tabaka olan kısıtlama altında değilim. Yani bu tür php yapılması gerekir. Ben eşleşmeleri belirlemek için array_intersect () kullanarak baktım, ama önceden tanımlanmış paketlerin sayısının doğrusal büyüdükçe ben buldum her şekilde işleme açısından katlanarak büyür.
Hepimiz o göründüğü kadar basit olmadığını bulundu kolay bir cevap olması gerektiği gibi görünüyordu ederken, yine bir çift diğer kodlayıcı arkadaşlar ve bu koştu. Yani, ben bir güzel makarna sedye olarak buradan sonrası düşündüm. Zaman ayırdığınız için çok şimdiden teşekkürler!