Конечно, стандартный ответ - это зависит. Таблица с таким количеством полей может иметь смысл в некоторых ситуациях.
Подумайте о данных, которые вы будете там хранить. Вероятно, что многие из этих полей будут NULL? Какова вероятность того, что эти поля изменятся (например, добавятся новые)?
Если к определенным объектам применяются только определенные поля, возможно, подумайте о том, чтобы поместить эти поля в другую таблицу. В качестве альтернативы можно сохранить только основные, общие поля в одной таблице, а дополнительную информацию - в другой таблице, по одной строке на поле. Как я предложил для другой вопрос (который может быть вам полезен):
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.
Обратите внимание, что это предложение было отклонено и, вероятно, не без оснований. Это вариант, не обязательно лучший, но все же работоспособный метод. Однако самый лучший ответ на вопрос, который я связал, может быть лучшим решением.
Изменить: поскольку вы говорите, что он будет содержать такие вещи, как настройки для каждого пользователя (например, цвет виджета), я бы действительно рекомендовал метод, описанный выше (с тремя таблицами). Скорее всего, большинство людей оставят значения по умолчанию, поэтому у вас будет храниться стопка бесполезной информации. Пожалуйста, прочтите мой ответ в другом вопросе, потому что другие читатели указали на недостатки этого метода.
person
nickf
schedule
21.10.2008