Designing a Data Model For Climbing Gear Checked Out at Events

by gcbd1070   Last Updated February 23, 2018 17:05 PM

I am trying to setup an internal use core 2.0 application to check gear in and out at climbing events. The Model will go something like this:

  • Category.cs (like ice, mountain, etc...)

  • ProductType.cs (like harness, shoes, etc...many to many with Category)

  • ProductStyle.cs (like specific lines, all of the same brand, these are like proper names, many styles to one type)

  • Product.cs(a specific combo of size, color, gender of a ProductStyle, with info about total in stock as well)

and then I have:

  • Event.cs (lots of info like time, location, contact info, etc...)
  • Customer.cs (name, phone, email, etc...)
  • Event_Customer (mapping customers and events many to many)

And here is where I start to get confused. I need to be able to associate something like say, ProductStyleInstance, where a particular set of a Product Style is sent to a particular Event and then checked out to people as individual ProductInstances. So, something like:

  • ProductInstance.cs(a particular instance of a Product with an IsCheckedOutbool, many instances to one product)

  • ProductKit.cs (something like an instance of a product style that has the same products, i.e. small through large, red and blue, male and female, of that style, but that is associated to a particular event and has its own quantities of each product)

  • ProductInstance_Customer(mapping many to many customers to product instances, where one customer can checkout a lot of product instances and one product instance can be checked out by a lot of customers)

This is confusing to me because I need to instance both the styles and the products within the styles, or something like that.

Broad overview: there will be lots of events, and each event will have some custom to that event set of products to check out to people. But I also need to be able to keep track of the number of products of a given style of a given type on the whole in the shared inventory, while having like instanced versions of those that get sent to events, so I can track quantities of each that get sent to different events and come back.

Related Questions

Best way to model "Composite Skus"?

Updated December 03, 2016 08:02 AM

Table Per Concrete Type in Entity Framework Core

Updated November 14, 2017 01:05 AM

Porting a .NET Core 2.0 to .NET

Updated December 08, 2017 12:05 PM