Как вставить значения из нескольких таблиц в другую таблицу? - PullRequest
0 голосов
/ 19 декабря 2011

Я новичок в базах данных.Всего у меня 4 таблицы: 3 таблицы заполняются автоматически при входе пользователя в Facebook.Я хочу, чтобы значения первичных ключей из этих таблиц были включены в 4-ю таблицу.Как мне это сделать ... Мне нужна помощь в ближайшее время!

Вот как выглядят таблицы:

table:attributes
fb_user : fb_uid, birhtday, gender, email.
company_master : com_id, com_name.
position_master : pos_id, pos_name.

И четвертая таблица выглядит так:

[table]:[attributes]
work_history : work_id, fb_uid, com_id, pos_id.

fb_uid, pos_id и com_id являются первичными ключами.

Как выполнить это, используя меньше операций с базой данных?Есть ли способ использовать триггеры для этой оптимизации?

1 Ответ

0 голосов
/ 19 декабря 2011

Во-первых, какой тип базы данных вы используете?Во-вторых, похоже, это проблема дизайна базы данных.Вы действительно должны использовать один уникальный первичный ключ для всех таблиц вместо того, чтобы использовать разные основные цвета и отображать их.Поскольку вы используете Facebook, имеет смысл использовать их идентификатор Facebook в качестве основного для всех таблиц, а затем сохранять другие идентификаторы как уникальные поля.Это также позволит вам легко использовать полезные функции, такие как объединения, для извлечения данных из нескольких таблиц одновременно.Если это нецелесообразно, например, если вы используете несколько входов в систему (Facebook Google и т. Д.) Для одного и того же пользователя, вы захотите иметь справочную таблицу, которую вы предлагаете в качестве таблицы управления, а затем использовать ее, чтобы помочь заполнить другие,В идеале вы хотите минимизировать избыточные данные в максимально возможной степени, чтобы снизить риск несоответствия данных.Если вы новичок в базах данных, вам следует почитать о дизайне и нормализации баз данныхХороший дизайн поможет с масштабируемостью и предотвратит множество головных болей и разочарований.

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