Allow Null Columns vs separate 1-to-many tables
Allow null is a better approach. It gives us significant performance benefits with significant effort shortage to accomplish the task.
A separate table will cost more JOIN. To query such a data is/can be certainly slower, than to query single table