New answers tagged database-agnostic
Option 1 is your best way to go, just make sure that the Days table has a simple type id column which you will then reference in the UserDayPref table. Keeping the ID field a simple value will save on space and make for fast joins if the UserDayPref table grows large. If you opt for option 3, you'd really be moving a part of the data into application code, ...
Even If you want to go with the 3rd Option you can have a Foreign Key. As in your example you are discussing about the days of the week they will never change. In a case other then Days of the week where there is a probability of change, in my opinion you must go for a foreign-Key in order to maintain your Database Integrity.
Top 50 recent answers are included