A database recording people's details in a situation where providing data is not compulsory for membership raises the question of how to handle partial dates of birth. Some people are happy to provide their full day-month-year date of birth. Some are happy to provide their birthday as day-month or just month. Others wish to keep their birthday to themselves but are happy to give the year that they were born.
I am about to retrofit something like this into one of my databases. The most obvious way is to have three fields, one for each of day, month, and year, and to turn the existing birthdate field into a calculation based on the three separate fields. That should allow calculation of ages accurately in some cases, approximately in some cases, unknown in other cases. It should also allow listing of forthcoming birthdays, precisely in some cases, approximately in some cases, unknown in other cases. (If people refrain from providing full details they can't complain if their birthday is not noticed, but they have the option of keeping some data private if they wish to.)
Does anyone have any better suggestions for handling partial dates of birth than the above?