powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Выбор типа внешнего ключа
9 сообщений из 9, страница 1 из 1
Выбор типа внешнего ключа
    #35800225
rommy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В системе есть несколько типов объектов: человек, договор, компания и т.д. Все это хранится в разных таблицах.
Необходимо для всех этих объектов (а также для возможных будущих) вести некий журнал, который представляет собой таблицу с след.полями:
Код: plaintext
1.
2.
 1 . результат контакта с объектом или действия с объектом (вносится пользователем)
 2 . Дата создания записи
 3 . Автор записи
Автор записи необходим для того, чтобы запретить пользователям менять и/или смотреть чужие записи.

Вопрос к уважамым All: как лучше сделать ссылку на "родительский" объект? Я пока вижу следующие варианты:
1. Код родительского объекта и тип объекта (будет справочник объектов);
2. в таблице (журнале) добавить след поля
Код: plaintext
1.
2.
3.
n.    Код человека
n+ 1 . Код договора
n+ 2 . Код компании
n+n. ...
и при появлении каких-то новых объектов добавлять новые поля;
3. для всех объектов ввести составной ключ: несколько символов характеризующих объект+автоинкремент. В таблице журнала в таком случае будет только один код.
4. Для каждого объекта создавать свою таблицу журнала.

У кого какие мнения есть на сей счет?
Заранее огромное спасибо!
...
Рейтинг: 0 / 0
Выбор типа внешнего ключа
    #35800234
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rommy,

завести супертип "объект"

EntryID
CreatedBy
CreatedOn
IsActual

покурить ООП
...
Рейтинг: 0 / 0
Выбор типа внешнего ключа
    #35800253
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rommyЯ пока вижу следующие варианты:
1. Код родительского объекта и тип объекта (будет справочник объектов);
2. в таблице (журнале) добавить след поля
Код: plaintext
1.
2.
3.
n.    Код человека
n+ 1 . Код договора
n+ 2 . Код компании
n+n. ...
и при появлении каких-то новых объектов добавлять новые поля;
3. для всех объектов ввести составной ключ: несколько символов характеризующих объект+автоинкремент. В таблице журнала в таком случае будет только один код.
4. Для каждого объекта создавать свою таблицу журнала.Если это просто журнал (лог), то 1
...
Рейтинг: 0 / 0
Выбор типа внешнего ключа
    #35800262
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> У кого какие мнения есть на сей счет?

Вы делаете распространенную ошибку: берете неправильное решение стандартной задачи и хотите получить комментарии. Задачу сформулируйте. Не свою интерпретацию задачи, а исходную задачу.
...
Рейтинг: 0 / 0
Выбор типа внешнего ключа
    #35800287
rommy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> У кого какие мнения есть на сей счет?

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

:-)
Исходная задача сформулирована следующим образом:
Пользователи должны регистрировать информацию о клиенте (договоре, и т.д.) в БД.
Пользователи должны иметь возможность редактировать только свои записи.
Для каждой записи должна регистрироваться дата/время.
...
Рейтинг: 0 / 0
Выбор типа внешнего ключа
    #35800308
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rommyИсходная задача сформулирована следующим образом:
Пользователи должны регистрировать информацию о клиенте (договоре, и т.д.) в БД.
Пользователи должны иметь возможность редактировать только свои записи.
Для каждой записи должна регистрироваться дата/время.То-есть только регистрация без дальнейшего её использования?

Хотя подождите, какая регистрация, если записи можно редактировать?

Это тогда не журнал, а прямо документы какие-то :-)
...
Рейтинг: 0 / 0
Выбор типа внешнего ключа
    #35800392
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Исходная задача сформулирована следующим образом

Другое дело. Ни о каких "объектах", которых в реляционных базах данных в принципе нет, в задаче речь не идет. Стандартная задача об ограничении доступа. Воспользуйтесь поиском по форуму, она обсуждается регулярно.

Судя по приведенному фрагменту задачи, это наиболее простой из возможных вариантов ее постановки. Для решения достаточно хранить идентификатор пользователя и иметь простейший набор правил.
...
Рейтинг: 0 / 0
Выбор типа внешнего ключа
    #35800475
rommy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже я сделал ошибку, употребив термин "объект" - прошу прощения:-)
В данном случае скорее всего лучше использовать термин "сущность".

guest_20040621Стандартная задача об ограничении доступа.
У меня голова болит не столько об ограничении доступа - тут проблем нет.
Меня интересует, каким образом более оптимально организовать связь между сущностями и записями в журнале. Мне на ум пока-что пришло 4 возможных варианта.

alexeyvgТо-есть только регистрация без дальнейшего её использования?

Хотя подождите, какая регистрация, если записи можно редактировать?

Это тогда не журнал, а прямо документы какие-то :-)
Дальнейшее использование возможно только в виде выборки - посмотреть, какая испория есть по той или иной сущности.
Редактирование своих записей возможно будет только в течении текущего дня на случай каких-либо опечаток.

alexeyvgЕсли это просто журнал (лог), то 1
Наибольше склоняюсь к 1, но "бес путает" выбрать 3.
Есть такое предчувствие (предчувствие потому, что раньше с таким не сталкивался), что при некоторых отчетах для того, чтобы подтянуть "правильную" сущность придется парсить родительский код.
...
Рейтинг: 0 / 0
Выбор типа внешнего ключа
    #35800673
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Меня интересует, каким образом более оптимально организовать связь между сущностями и записями в журнале.

В каком журнале? Никаких журналов для решения сформулированной задачи не нужно. Там нет ни слова об истории изменений.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Выбор типа внешнего ключа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]