It is a vast and complex field. Governments have ploughed millions into the development of software that tries to do this - and mostly failed!
The medical industry have a number of classification/encoding systems many of which aren't cross-compatible.
As this is an amateur project, I'd keep it very simple;
define all of the attributes possible for any symptom you are dealing with, and store them all on a single table - leaving null any that are not applicable.
If you do want to be more complex, then I'd suggest:
A table of symptoms
A table of attributes
A cross-reference table many-many linking which attributes are applicable to which symptoms
now use a Patient-Symptom-Attribute table to collect the data
this table holds the value for an attribute for that patient with that symptom.
If existing coding systems are anything to go by, you will have a lot of symptoms.
see
ICD10[
^]
for example.