2013-10-01 5 views
0

У меня есть профиль профиля пользователя в Mysql, он содержит много дополнительных столбцов. (около 30 колонок)Mysql слишком много пустых полей в таблице

id, tel, live, mob, email... 

Q1. следует ли хранить его в 30 таблицах (использовать соединение) или хранить их в 1 таблице?

если 30 таблиц

он может сохранить много пустых полей, если пользователь не сохранить данные.

Q. Когда я запрашиваю, для этого потребуется соединение 30 раз, будет ли это плохо для производительности, просто выберите 1 таблицу и запрос. (Это будет более трудно писать для каждого запроса)

если 1 таблица

Там собираются быть много пустых полей в колонках

Q. Должен ли я хранить его в NULL или «пустой»?

ответ

0

Q1. следует ли хранить его в 30 таблицах (использовать соединение) или хранить их в 1 таблице? не

Нет, это не было бы хорошей идеей,

Q. Когда я запрашиваю, это потребует присоединиться 30 раз, будет ли это плохо для замещать производительности просто выберите 1 таблицу и запрос. (Это будет более трудно писать для каждого запроса)

Да это плохо влияет на ваш Performace

В общем, вы хотите, чтобы ваши таблицы относительно мало (мое мнение), но вы должны группировать связанные значения, для пользователь, которого вы, возможно, захотите: имя пользователя, адрес электронной почты, пароль, last_login и т. д.

В то время как 30 столбцов кажутся немного высокими, может быть веская причина для этого, но если вы обнаружите, что многие поля пустые большую часть времени, то вы следует пересмотреть свой дизайн. Какова ситуация, когда эти поля не пусты? например, если эти поля не пустые, только когда пользователь ввел данные своего адреса, то, возможно, вы должны составить таблицу адресов.

этот пост хорошо подходит нулевой и пустой вопрос: MySQL, better to insert NULL or empty string?

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