There have been a few threads here on the design of backing databases for Altium libs, if you search for "dblib" here you should turn up a few. I've given my opinion in a couple of those, but in general, I wouldn't recommend doing separate tables for different part types, nor trying to capture a whole lot of component specifications in the database. Just put the headline specs in the description field, the value in the value field (and you can set the comment parameter in your symbols to "=Value" to make it show up there--great for passives especially), and include a link to the datasheet for when you need to dig deeper into the specs. Trying to incorporate a whole lot of performance specs as database parameters is a waste of time IMO. Having things like MLCC dieletric type or resistor precision/tempco as parameters can be nice, I have symbols defined that will show those on the schematic which is handy. My default resistor symbol only shows the resistance, but I have an alternate graphic mode that shows the tempco and precision for those places where it matters to the circuitry.
For organization, I included a four-level set of hierarchical fields, which you can use to group things in the component browser. These are pretty freeform and have grown a bit inconsistent after using this library for a few years, but in general it makes it pretty easy to find what I need. You can of course use more or fewer levels depending on how granular you want to get, but I find four (where the top level is the component type) works well for me.