I'm looking for a way to find links between users to solve a particular fraud scenario.
I've got some high-level linking rules as follows:
- Surname + DOB
- Mobile + Postcode
- Email + Postcode
- Mobile + Surname
- Mobile + DOB
- etc
If we can link a user to a known fraudster, we'd take some kind of action.
I'm thinking that a graph database (thinking of using Cosmos DB Graph API) might be a good approach.
Questions:
- Based on the description I've provided, would a Graph DB make sense, or would a relational DB be better for this scenario? I have experience with relational DBs, but colleague mentioned that a graph DB might be better for this scenario.
- Assuming a graph DB is the way to go, I'm struggling a bit with the modelling - like I said, I have done a lot of work with relational DBs and this is probably impacting how I think about this. Here's an example - a Person will have a Mobile, Email, & DOB, but these things may have been used by someone else (especially when considering fraud scenarios) and if we can find a link we'll need to take some action. In a graph DB, would it make sense to have Mobile, Email, & DOB as separate vertices, or would they be properties of a Person vertex... I feel like they should all be separate vertices, so that I can define edges/links to them from multiple Persons. The thing that seems like it might be incorrect is that I'll have very fine grained vertices that only have properties for id & label e.g. label = email, id = test@gmail.com. Thoughts?
Cheers.