Database Design – Relations Between IMEI, SIM Chip, and Account

database-designerd

I've never really had a cellphone (that I owned the account to…long story), but at work we have them, and we want to get a series of relations between accounts, devices (mifi's, tablets, cellphones), sim chips, data plans, etc straightened out at work.

My personal theory on this, is that we need to put all the information into several tables in a database until the issues are resolved and the information there is valid.

And later maybe we could even add a history table if need be to remember who had them, where, and which plan / which department, and how much each plan cost. We have plans in two companies Verizon and AT&T.

So what I am asking is, what are the basic relations between this information?

From what I understand the device id's (the IMEIDs) should be the unique key that uniquely identifies a device.

I'm not certain what identifies a plan, maybe an account number…maybe a phone number…

I'm not sure what all the variables are related to this, but I'm pretty sure I could normalize a database for it, if I would find out all the unique keys involved.

I also have an HR database that keeps track of our employees that I can do a join on to record a history of plans, phones, devices etc…

Best Answer

Here are the layers of abstraction that you need to go through to track who has (pays for) a GSM phone:

ERD

Note that this is good for a point in time. If you need to track changes over time then everything becomes many-to-many with start/end dates in the intersection entities.