Por supuesto, la respuesta estándar es depende. Una tabla con tantos campos en realidad podría tener mucho sentido en algunas situaciones.
Piense en los datos que almacenará allí. ¿Es probable que muchos de estos campos sean NULL? ¿Cuál es la probabilidad de que estos campos cambien (p. Ej .: se agregan más)?
Si solo ciertos campos se aplican a ciertos objetos, quizás piense en poner esos campos en otra tabla. De forma alternativa, almacene solo los campos básicos comunes en una tabla y la información adicional en otra tabla, una fila por campo. Como I suggested para a different question (which might be helpful to you):
refs (id, title, refType)
-- title of the reference, and what type of reference it is
fieldDef (id, fieldName, refType, dataType)
-- name of the field, which reference types it applies to, and
-- what type of data is stored in these fields (ISDN number, date, etc)
fields (refId, fieldId, value)
-- where you actually add data to the references.
Tenga en cuenta que esto era downvoted, y probablemente con razón. Esta es una opción, no necesariamente la mejor opción, pero sigue siendo un método viable. Sin embargo, la mejor respuesta en la pregunta a la que me he vinculado es la mejor solución.
edición: ya que dices que será la celebración de cosas como la configuración por usuario (por ejemplo: el color Reproductor), yo realmente recomiendo el método descrito anteriormente (con las tres tablas). Lo más probable es que la mayoría de las personas dejen las cosas en forma predeterminada, por lo que tendrás almacenada una pila de información inútil. Lea mi respuesta en la otra pregunta porque otros lectores han señalado las deficiencias de este método.
BCNF es mejor, y normalmente lo que está en 3NF también está en BCNF. –