5

I'm working on getting a handle on Graph Databases (using Neo4j) and am trying to wrap my head around where "the line" is between what makes a good fit for GraphDBs and what should be strictly RDBMSs.

Particularly, I'm looking at a graph model to store manufacturing BOMs, as well as related information such as inspection reports, who invoked change orders to parts, etc. For the most part, I'm able to make this fit pretty well in the Property Graph Model.

Entities such as Part X, Engineer Y, Change Order Z are well mapped, but now I'm wondering about whether it's feasible to track inventory transactions using a GraphDB, or whether this is really a bad fit. It seems to be a bad fit, but with the alternatively seemingly to be storing data both in a Graph and RDBMSs, I'd like some further opinions.

So, I have Part A and need to track each time X amount of Part A are moved in or out of Inventory. In an RDBMs, this is of course very simple. In a Graph database, storing these transactions seems like trying to fit a square peg in a round hole.

I'm sure I can bludgeon my way through it, but what happens to my otherwise nice graph model when I start adding transactional information like this? Can a Graph DB work well with this type of data, or should I strongly consider having a Graph DB consisting of Part A with the key linked to a RDBMS that stores the inventory transactions for the given key?

jleach
  • 2,632
  • 9
  • 27
  • Did you find solution for this? Is Graph DB recommended to have transactional information similar to RDBMS? – Daniel Inbaraj Mar 23 '21 at 06:11
  • 1
    @DanielInbaraj - we ended up settling on a mix of Graph and Relational databases. We determined: Graphs are great for what they're good for, and terrible for handling transactional data. It was much easier to maintain a separate relational DB (even with some key entity sync management) for this info. – jleach Mar 23 '21 at 11:36
  • @@jleach .. do you have any approach on how to sync the key between graph and rdbms. Any idea on sync management? – Daniel Inbaraj Mar 24 '21 at 14:27
  • @DanielInbaraj - none in particular... I think that very much depends on the situation, so it's something that'd have to be investigated thoroughly and a solution devised. Certainly there is some best practices, but far outside the scope of what could be handled in a comment here (you're likely to find material on it searching this site) – jleach Mar 24 '21 at 19:45

0 Answers0