I have a table called LogMessages, which has the following columns:
- Level
- A numeric value which represents Trace, Debug, Info, Warning, Error or Fatal
- Time
- A UTC time
- Message
- Foreign key to a Messages table
- Source
- Foreign key to a Sources table
- User
- Foreign key to a Users table
From what I can see, all of these columns are a part of the candidate key; if any single value differs to an existing row, a new row can be created.
My question is, does this design comply to fifth normal form? I am unsure as some groups of data will be repeating, however I don't believe this violates 5NF? (correct me if I'm wrong)
Update
It is possible to create a new row in this table if any single one of the columns changes, e.g. It is possible to have the same message at a different level ('User does not exist' could be logged as a warning at one point in time and an error at a different time).