2014-04-04 3 views
1

В моей базе данных каждый пользователь занимает 12 строк по 3 знака/столбца.MySQL Row or Column

Я мог бы преобразовать его так, чтобы каждый пользователь занимал 1 строку, но каждая строка имела бы 25 значений. (это 25, а не 36, потому что я только один раз вводил user_id)

Было бы более эффективно использовать 1 строку с 25 столбцами или 12 рядами с 3 столбцами?

Да, я знаю 25 < 36 но мне любопытно, насколько это будет иметь значение?

информация добавлена. 12 - var char, 12 - целые числа (1-12), 12 - целые числа (user_ids, которые были бы уменьшены 1, если все в 1 строке)

Дополнительная информация, 12 символов var также доступны для редактирования пользователем , Будет ли обновление каждой строки дольше загружаться?

+2

Я не уверен, что могу даже представить, почему схема, которая у вас есть, была бы желательна. Была ли причина для этого? Что случилось с 36 строками - если вы действительно хотите всю эту информацию? –

+0

Лучший подход зависит от того, что эти данные на самом деле. В любом случае для 25 (или 36) значений вам действительно не нужна база данных. –

+3

Зависит от данных: Дизайн стола связан с отношениями. Если все данные относятся друг к другу точно один к одному, то одна строка имеет смысл. но если эти столбцы содержат конкретные имена для ролей, разрешенных в приложении, то нормализация данных и наличие отдельных таблиц имеет смысл. Пользователь может иметь много ролей, роль которых может принадлежать многим пользователям. поэтому 3 таблицы имеют смысл. Но если вы можете честно сказать сейчас и в обозримом будущем, что каждое значение столбца связывается только с идентификатором пользователя один раз, и вам не нужно добавлять структуру (новые роли) для размещения, тогда 1 строка имеет смысл ... clear as грязь? – xQbert

ответ

3

С точки зрения нормализации, одна строка с 25 столбцами.

+0

да, вы бы хотели, чтобы одна строка с несколькими столбцами и только один идентификатор для этого пользователя –

+1

Я бы не согласился. Это действительно зависит от данных. Если все данные являются отношениями друг к другу, то возможно. Если данные можно объединить в похожие конструкции (например, роли), то нормализация не будет одной строкой. поэтому тип столбца, данные, которые он представляет, действительно имеет значение здесь. – xQbert

+0

Хорошо нормированный, это будет одна запись для каждого пользователя. Возможно, эта запись может содержать только несколько полей и некоторые другие таблицы (возможно, таблицу ролей), но одну запись для каждого пользователя. – Andreas

Смежные вопросы