In part of a website I am designing, there is a section that will have both predefined values and the option to specify custom values.
As a simpler example, let's assume that the values are "Sports" and that the application has predefined sports, but that some users will want to enter their own since I can't predict everything that they will come up. Users won't have access to the sports that others have entered, only their own.
Should the predefined sports and the custom sports be stored in the same table? In this case, I either have to allow a user_id column in that table to be null, or create a user and user_id for the predefined sports.
Most of the time when searching for a sport by name I will want to search both predefined and the user's own custom sports, so if the predefined and custom sports are separated, I would still have to have the search go across both tables.
On the other hand, if they are separated, it makes it harder to specify foreign key relationships based on a sport_id.
What is a good way to approach this type of situation?