# Database planning as a solar system ![solar system](https://img.theweek.in/content/dam/week/news/sci-tech/2019/June/solar-system-planets-shut.jpg) it seems that everywhere data comes in, there will be the chance that it will contain `Person` records that don't exist yet in `BokCentral.Main.People` -- and there are main such data feeds: * the HUIT `People` .csv file is one (perhaps the main, most reliable most frequently used one--but just one) * so are LL and P&P staff 8 typing directly into Airtable * and so are all the forms we put up on the web, etc. * and so are the other HUIT csvs (like TF Appts) if they contain any people who aren't in the `HUIT.People` csv-generated table So we need to handle this operation all the time. I think one could argue that we should always just create a `Person` record with whatever data we have. If we have HUID or email or some other potential key, then it could be possible to use this field to find relevant data in `BokCentral.HUITFeed.People` and bring it into `BokCentral.Main.People` (but this won't always be possible). -------------------------- And one could also argue that the key thing here (mental-model-wise) is that `BokCentral.Main.People` is where the Truth is (not `BokCentral.HUITFeed.People`). All data feeds (including `HUITFeed`) are ways of initiating and updating records in `BokCentral.Main.People`, not competing sources of Truth. When seen from this perspective, the puzzle here isn't really created by the fact that the additional data in `HUITFeed.TFAppointments` doesn't match `HUITFeed.People` . . . because the puzzle is already there! `HUITFeed.People` already doesn't "match" `BokCentral.Main.People` so its existence alone requires the scripts that reconcile newly arriving data with existing or non-existing records in `BokCentral.Main.People`. A good mental model (or at least a good visual metaphor) for all of this might be the solar system. To understand the movements in this system, its way way way WAY easier to map the individual planets orbits around the sun in your head (with the sun as the stable point of reference) than to try to think too much about all planets' positions with respect to each other (as if each was equally significant to the system as a whole). `HUIT.People` and `HUIT.TFAppointments` are like Jupiter and Mars . . . we need to understand that both orbit `BokCentral.Main.People`, but we will drive ourselves crazy if we try to figure out how Jupiter moves with respect to Mars in our heads.