Hello,
I'm trying to design a database structure for the purpose of keeping track of recent programs and their features.
* Each program is organized in a category and section.
* There is a set of pre-determined features that any program may have.
Example of features:
Language Written in:
C/C++
Assembly
Visual Basic
Java
General Features:
Pluggable
Source code
Documentation
Price
Platform:
Windows
Linux
MacOS
etc....
When listing the programs, a tick beside the feature would indicate that a featuere is supported.
I would like to design the database such that any feature can be added/removed easily at any time (like for example adding Solaris to the list above for features supported).
I initially thought of having the following tables:
ProgramEntry
id, author, name, description, addDate
FeaturesData
prog_id, feature1, feature2, feature3, ....
And whenever I want to add support for a feature in general, I would just alter the table to add a column.
However, this design is not that scalable and flexible. For example, if I would like to also store the date of when a feature of a program was added, then that's not possible with the table design I provided.
Does anyone have any suggestions of how I would design the tables such that it incorporates the ideas I just mentioned?
Thanks for everybody's help.