Database Formalization


#1

I’m back already. Formalization was great and easy to understand, but what I am uncertain of what to do with is numeric values that change under certain conditions.

Examples:

Character Experience, once a character completes a quest they get experience points they later will spend to purchase abilities/skills.

Skill cost, the cost of a skill differs based on racial affinity and the purchase of an ability that opens up another affinity.

Attributes, such as Mana, that change throughout game play through use of things like spells, health would be much the same way.

My first thought is that these would be separate tables linked to the character table, but if it’s to follow 1nf rules, you can’t have rows with like information. It may be that I have 5 characters at a given time that have the same number of experience points, attribute value or health.

Thanks again!


#2

It’s actually “Normalization”. Take another run through a normalization tutorial. I don’t thing you are quite grasping it yet. As you said, it is easy, so you should be able to master it in a couple hours.


#3

If you have 5 different characters that happen to have the same point values, that doesn’t mean that you are repeating data, it just means that they happen to have the same values. If you and I were born in the same year and have the same systolic blood pressure, that doesn’t mean you have 2 values that are linked to you and I.

But as a general rule, you should not duplicate data across tables.