What's the best way to approach modelling a warehouse picking system?

To be precise, customers place orders which are processed by warehouse staff.

A simple products and orders database isn't an issue. My trouble comes breaking down orders into smaller warehouse trips. Tips are created based on the quickest route around the warehouse based on product locations. Two assistants can pick different parts of the same order (different trips), but they can also be picking multiple orders.

I can't wrap my head around how I'd make a simple model of this, I know I need to break an order down into a smaller order(s) based on whatever criteria (warehouse location in this case).

I think it'll be along the lines of (some obvious fields missing for clarity):




I know this isn't right as the SMALL_ORDERS isn't broken down, I'm just duplicating ORDERS. Would I make SmallOrderID on the TRIPS table, contain multiple values or is this a bad idea?

This is solely for a self-learning programming project, I'm not looking for anything enterprise-like. It's a simple version of a major enterprise system we use where I work.

I'd be more than happy if anyone can tell me the correct type of schemes I should be googling for, I assume they must have a certain name.



My first IT job was in this area - basically I was involved in a "fiddle" on the part of my employer to land a big contract which involved convincing the client that we had a functioning and "intelligent" order picking system. It involved alcholic beverages and there are many complex rules about these (tax reasons).

Anyway, I just wish that Open Source had been as prevalent then as it is now - because there appear to be a plethora of high-quality projects out there in this area. A quick Google landed me here and here - search for the word "pick" on these pages.

If I were you, what I would do is examine these (and others...) packages and see which ones correspond most closely to your needs - download and install them and then check out the underlying schemas and see which bits you can borrow for your project. Or you may just decide to implement one of the systems that's already out there?

What I do know is that the logistics behind these problems are very complex (operations research, tricky mathematics &c.), so you might be able to take some of the pain out of your project by "standing on the shoulders of giants"!


You might like to check out this and its parent site- it specifically mentions bin-packing and employee rostering, so it might be of interest. I remember this from studying operations research. If you work in Java, it could be of interest - although the principles obviously apply to all languages.

  • wow, thanks. I know they can be incredibly complex and sophisticated but I'm trying to keep it real simple. I'd like to build upon my simple version slowly, hence wanting to get it right as possible. For some reason I never did Google for 'picking list' and variants of, good call there. Hopefully I can find something simple enough to understand. – user36874 Aug 15 '14 at 13:30
  • edit: I'll also add, it's actually a supermarket picking system I'm trying to develop, and we indeed pick into bins so that'll be incredibly helpful. – user36874 Aug 15 '14 at 13:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy