Присоединиться к спектаклю - PullRequest
2 голосов
/ 28 июля 2010

Моя ситуация такова:

Член таблицы
ID
Имя
фамилия
Компания
адресные данные (5 полей)
контактные данные (2 поля)
и т.д.

Таблица member_profile
member_id
html (что-то вроде

имя, фамилия

Компания

дата_регистрации )
date_activity
chat_status

Таблица новостей
ID
member_id (от fk до member_id в member_profile)
Название
...

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

Однако я обнаружил необходимость более частого использования информации об участнике, которая не хранится в таблице member_profile, например, Имя, фамилия и пол необходимы, когда кто-то опубликовал новость (имя опубликовало новость под названием title .

Что было бы лучше сделать? Переместить поля из таблицы member_profile в таблицу member или переместить поля member в таблицу member_profile и, возможно, удалить их из таблицы member? Помните, что таблица member_profile часто объединяется, а также обновляется при каждом входе в систему, обновлении статуса и т. Д.

Ответы [ 3 ]

1 голос
/ 28 июля 2010

Объедините их в одну таблицу, так что вы нормализуете данные имени, а затем создадите 2 представления, которые будут дублировать исходные две таблицы.

1 голос
/ 28 июля 2010

Разделение таблиц между в основном статическими полями и часто обновляемыми полями улучшит производительность записи. Так что я бы остался с тем, что ты делаешь. Если вы кешируете информацию из обеих таблиц вместе в объекте-члене, производительность чтения (и, таким образом, объединение) становится меньшей проблемой.

1 голос
/ 28 июля 2010

У вас есть две таблицы с именем member, поэтому я чувствую, что ваш вопрос сформирован неправильно.

Какая связь между этими таблицами?Похоже, у вас есть 3 таблицы, все один к одному.Так что все, что вам нужно сделать, это изменить (fk to member_id in member_profile) на (fk to id in member).

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

[Edit] Также я предполагаю, что member_profile.member_id это fk to member.id.Если нет, я считаю, что это должно:)

...