Стоит ли хранить идентификаторы пользователя и данные профиля (10-15 столбцов) отдельно? - PullRequest
1 голос
/ 28 июня 2011

Я использую PHP и MyISAM, в настоящее время у меня есть страница профиля для пользователей, и я не уверен, как мне точно выложить таблицы.

У меня есть таблицы для пользователей (и каждого бита их профиля, включаяпара полей MEDIUMTEXT для их подробного описания или пользовательской таблицы стилей,) таблица для друзей (userid + friendid) и, конечно, таблица комментариев, которые могли быть размещены на их странице.

Было бы целесообразноотделить данные профиля / дополнительные пользовательские данные от пользовательской таблицы и просто использовать их для проверки с другими таблицами?

Я не уверен, что многие / или некоторые длинные поля в каждой из строк были бы неуместными, если бы я был простопроверка их друзей, чтобы показать или что-то на другой странице.

Ответы [ 3 ]

2 голосов
/ 28 июня 2011

Короткий ответ может быть.Разделение таблиц сэкономит пространство, потому что если поле не используется, пространство не будет выделено.Пространство, вероятно, не будет проблемой (в зависимости от сервера и пользовательской базы), но объединение таблиц может снизить производительность, но опять же это зависит от пользовательской базы и сервера.Я думаю, что индексы первичных ключей хранятся в памяти, поэтому поиск не должен зависеть от количества столбцов / размера строки.

скорость / производительность ... денормализация

нормализация пространства

2 голосов
/ 28 июня 2011

В принципе, на ваши вопросы невозможно ответить, так как это очень субъективно, так что это более или менее определенное мнение:

Было бы целесообразно отделить профиль / дополнительные данные пользователя отпользовательский столбец и просто использовать его для проверки с другими таблицами?

Вроде так, потому что вы называете это extra пользовательскими данными.Поэтому он не принадлежит пользователю и должен храниться отдельно от него.

Я не уверен, что многие / или некоторые длинные поля в каждой из строк будут неуместны, если я просто проверяю их друзейчтобы отобразить или что-то на другой странице.

Трудно ответить также с информацией, которую вы предоставляете.Однако если вы выполняете только SELECT * FROM TABLE; запросов, это будет определенно неуместно.

1 голос
/ 28 июня 2011

Я думаю, что хорошо создать отдельную таблицу для профиля / дополнительных пользовательских данных.Сохраните часто используемый столбец в пользовательской таблице и переместите другие столбцы в новую таблицу user_profile.В настоящее время у вас есть 10 - 15 столбцов, но в будущем он может увеличиться до 50+ столбцов.Так что лучше сейчас отделиться.

HTH,

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