Я разрабатываю данные (-s) для хранения списка акционеров. В случае если акционер является кандидатом, он раскрывает список владельцев акций. Все они должны иметь кучу подобных ссылок. Таким образом, я хотел бы сохранить все в одной таблице. Номинанты являются зарегистрированными акционерами и, следовательно, у них есть номер счета в системе, из которого я получаю данные. Против этого, владельцы акций, которые поступают из номинального раскрытия информации, не имеют собственного номера счета и имеют номер счета участника.Саморегуляция частичного ключа таблицы
Я добавляю в таблицу уникальный идентификатор. Я хотел бы предположить, что все зарегистрированные акционеры и номинанты имеют 0 в этой области. Список раскрытия (незарегистрированные владельцы акций, работающие через номинального держателя) имеют значение выше нуля в этом уникальном идентификаторе. В основном, нумерованный список.
Мне нужно знать номинанта, которому принадлежит этот раскрытый акционер. Итак, мы приходим к самооценке. Это может быть нормально, если не для поля уникального идентификатора. Запрещается делать внешний ключ на части первичного ключа и считать, что в поле уникального идентификатора есть нуль. Итак, не могли бы вы предложить пошаговое руководство.
Чтобы лучше объяснить, вот выдержка:
Create Table Account (
AccountId Int,
Uniquifier Int,
NomineeId Int,
Constraint PK$Account Primary Key (AccountId, Uniquifier)
)
То, что я пытаюсь сделать что-то вроде:
Alter Table Account
Add Constraint FK$SelfReference Foreign Key (NomineeId) References Account (AccountId)
, который является незаконным, так как
There are no primary or candidate keys in the referenced table 'Account' that match the referencing column list in the foreign key 'FK$SelfReference'.
Любая помощь приветствуется.
Ну, что я могу сделать ' Alter Table Account Добавить AlwaysZero Int Null; Alter Table Account Добавить Constraint FK $ SelfReferenceWierd External Key (NomineeId, AlwaysZero) Ссылки Учетная запись (AccountId, Uniquifier) 'и добавьте искусственное поле, которое всегда будет содержать 0, ссылаясь на строку, которая в предположении всегда будет иметь 0 в столбце Uniquifier. Конечно, я могу даже добавить некоторые ограничения проверки для этого, но это выглядит странно для меня, и должны быть лучшие способы. –