Question about best practice for MongoDB

I am using Meteor, but my question more sort of pertains to MongoDB:

I have two different types of “Orders” I want to have in my database; One is a sales order, and one is a work order. Would it make more sense to have two separate collections: SalesOrders, WorkOrders, or put them in one collection together, Orders, with fields to distinguish between the two: Order.type = ‘Sales’ or Order.type = ‘Work’

They could be related to each other but not necessarily directly, a Sales Order could spawn a Work Order (like if something on the Sales Order required installation). And a Sales or Work order could both be created completely separate from each other.

Both have similar properties like the ability to have payments, but would contain completely different types of ‘Items’ that could be added to them. BUT both could, for instance, have a ‘Part’ as one of the items, because it could have been sold from sales, or used as part of an installation that needed to be charged for on a work order.

I can see why putting them in just an ‘Orders’ collection could be useful, if I ever wanted to pull them in one query like for Tax purposes or as a customer’s ‘Order History’. But would there be a noticeable negative impact on speed to do it that way? Would it be much faster to have them in separate collections? (Because most of the time they would be queried separately) Or would it come down to personal preference?

After thinking it through and discussing it, I’m sure that it makes most sense, especially business-wise, to make them separate collections because essentially a Sales Order and a Work Order are two completely different things and could even one day be separated into completely different apps.

Unless one of you have another opinion based on experience! I’d like to know, thanks :slight_smile: