I want to designate email addresses as "work" or "main", or whatever else I need for a custom app. Similarly so for the other four profiles database tables. So I created "lookup tables" for each profiles table.
The are designated in the admin as "Lookup":
To be honest, I don't really need these lookup tables for LaSalle Software. They serve no functional purpose. However, it is very convenient to have the "lookup table" concept figured out for future/custom development. For my own use, it's been handy sorting by type.
In a former life I worked in the techie area of a bank's capital markets department. Oh, they loved their lookup tables. Small little database tables with no indexes, very few fields, and basically no complicated database stuff. They were structured all the same. And they had about a bazillion of them. Cost centres, country codes, trading desks locations. If you needed the name a cost centre code represented, you "looked it up" in the lookup table. One of the few things that made down-home sense in that place, but I digress... Lookup database tables were simple and structured.
In my migrations, I designate my lookup tables with the preface "lookup". See https://github.com/LaSalleSoftware/lsv2-library-pkg/tree/master/database/migrations
Even though I do not preface my blog tags and categories tables with "lookup", they are lookup tables. https://github.com/LaSalleSoftware/lsv2-blogbackend-pkg/blob/master/database/migrations/2019_06_02_183254_create_tags_table.php
The Nova resources are structured the same for lookups. An example: https://github.com/LaSalleSoftware/lsv2-novabackend-pkg/blob/master/src/Nova/Resources/Lookup_social_type.php
Here are the types I seed during installation. The are editable in the admin.
- Address Types for addresses
- Email Types for email addresses
⇒ Created By Nova Personbydomain Form
- Social Types for social sites
- Telephone Types for telephone numbers
- Website Types for websites