First, let me say I'm a huge believer in the benefits of normalization. (Though I still have much to learn about it.) That said, I can't think of any way to normalize this beyond its current form (which is kind of shoddy in my opinion.)

http://img14.imageshack.us/img14/7229/relations1li6.jpg

I'm designing a database for a card came which I and other users can use to see how various cards can complement each-other. Every creature has several classes, as does every action card, but in order to use an action card, a creature must have at least all of the classes listed on the action card.
The crux of the matter is that in the packs you purchase, every character card comes with 2 action cards, for which it has all the necessary classes. I think this means my design violates the fifth normal form, if not any preceding forms.
One improvement might be to make a superset of action & character cards with the image field being the common denominator, but on the other hand that would just be storing all the names an extra time as all the image filenames are unique.
Am I missing something obvious here? If it helps, the whole class thing can be likened to permissions on a file system, where one file can require a user be part of multiple groups in order to access it (which I don't believe has actually been implemented anywhere)
Thanks in advance!

Looks good but I think the "Package with" could have been consolidated with the creature.

But I may not understand how the game works.

Meaning I buy a creature and it "comes with" or is "packaged with" something.

If thats the case then you could drop that in the creatures table instead of having another table.

I appreciate the effort, but 2 abilities come with one creature, meaning if I was to put them in the creatures table, I would need 2 fields holding interchangeable data. I'm under the impression this isn't desirable.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.