Это для проекта. Я делаю базу данных для различных видов записей для офиса. Существует таблица, в которой собраны все первичные ключи этих таблиц записей. Итак, мне нужно иметь внешний ключ, ссылающийся на эти таблицы. И я потерян. Я спросил своего очень верного друга в Google, но я не понял некоторых возможных ответов на этот вопрос.
Вот что я придумал (имена таблиц не являются их настоящими именами, просто хочу, чтобы они были здесь общими).
Изменить: я использую Postgres
Таблица записей:
recordId -> references record1 id,record2 id,record2 id
docId -> identifies what kind of record it is
filingDate
Запись1:
id
attribute2
attribute3
Запись2:
id
attribute2
attribute3
Запись3:
attribute2
attribute3
На самом деле Record1, Record2 и Record3 имеют более 30 столбцов каждая (представьте, например, свидетельство о рождении).
RecordsTable будет отображаться для пользователей. запись1-3 будет отображаться только в том случае, если пользователю нужно что-то отредактировать.
Я подумал, что сделаю запись 1-3 эталонной таблицей записей, но это будет проблематично для пользователя, так как ему/ей нужно будет сначала ввести данные в таблицу записей, а таблица записей не для этого. Это просто показать сводку всех записей, хранящихся в офисе, так как показывать все сразу будет нехорошо.
Если есть что-то неясное, пожалуйста, дайте мне знать, чтобы я мог объяснить это подробнее. заранее спасибо
RecordsTable
вообще существовать. Разве представление, выполняющееUNION ALL
между отдельными таблицами записей (и любыми общими столбцами), не послужит этой цели лучше? - person Damien_The_Unbeliever   schedule 10.03.2012TableName
, то комбинацияTableName
иId
должна быть уникальной без дополнительных усилий. - person Damien_The_Unbeliever   schedule 10.03.2012UNION ALL
, вы можете также объединить все три таблицы в одну и просто добавить столбец типов. Если у них мало или совсем нет общих столбцов, то объединение тоже не имеет смысла. - person alexis   schedule 10.03.2012