|
|
|
Выбор типа внешнего ключа
|
|||
|---|---|---|---|
|
#18+
В системе есть несколько типов объектов: человек, договор, компания и т.д. Все это хранится в разных таблицах. Необходимо для всех этих объектов (а также для возможных будущих) вести некий журнал, который представляет собой таблицу с след.полями: Код: plaintext 1. 2. Вопрос к уважамым All: как лучше сделать ссылку на "родительский" объект? Я пока вижу следующие варианты: 1. Код родительского объекта и тип объекта (будет справочник объектов); 2. в таблице (журнале) добавить след поля Код: plaintext 1. 2. 3. 3. для всех объектов ввести составной ключ: несколько символов характеризующих объект+автоинкремент. В таблице журнала в таком случае будет только один код. 4. Для каждого объекта создавать свою таблицу журнала. У кого какие мнения есть на сей счет? Заранее огромное спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 19:17 |
|
||
|
Выбор типа внешнего ключа
|
|||
|---|---|---|---|
|
#18+
rommy, завести супертип "объект" EntryID CreatedBy CreatedOn IsActual покурить ООП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 19:24 |
|
||
|
Выбор типа внешнего ключа
|
|||
|---|---|---|---|
|
#18+
rommyЯ пока вижу следующие варианты: 1. Код родительского объекта и тип объекта (будет справочник объектов); 2. в таблице (журнале) добавить след поля Код: plaintext 1. 2. 3. 3. для всех объектов ввести составной ключ: несколько символов характеризующих объект+автоинкремент. В таблице журнала в таком случае будет только один код. 4. Для каждого объекта создавать свою таблицу журнала.Если это просто журнал (лог), то 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 19:33 |
|
||
|
Выбор типа внешнего ключа
|
|||
|---|---|---|---|
|
#18+
> У кого какие мнения есть на сей счет? Вы делаете распространенную ошибку: берете неправильное решение стандартной задачи и хотите получить комментарии. Задачу сформулируйте. Не свою интерпретацию задачи, а исходную задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 19:36 |
|
||
|
Выбор типа внешнего ключа
|
|||
|---|---|---|---|
|
#18+
guest_20040621> У кого какие мнения есть на сей счет? Вы делаете распространенную ошибку: берете неправильное решение стандартной задачи и хотите получить комментарии. Задачу сформулируйте. Не свою интерпретацию задачи, а исходную задачу. :-) Исходная задача сформулирована следующим образом: Пользователи должны регистрировать информацию о клиенте (договоре, и т.д.) в БД. Пользователи должны иметь возможность редактировать только свои записи. Для каждой записи должна регистрироваться дата/время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 19:44 |
|
||
|
Выбор типа внешнего ключа
|
|||
|---|---|---|---|
|
#18+
rommyИсходная задача сформулирована следующим образом: Пользователи должны регистрировать информацию о клиенте (договоре, и т.д.) в БД. Пользователи должны иметь возможность редактировать только свои записи. Для каждой записи должна регистрироваться дата/время.То-есть только регистрация без дальнейшего её использования? Хотя подождите, какая регистрация, если записи можно редактировать? Это тогда не журнал, а прямо документы какие-то :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 19:52 |
|
||
|
Выбор типа внешнего ключа
|
|||
|---|---|---|---|
|
#18+
> Исходная задача сформулирована следующим образом Другое дело. Ни о каких "объектах", которых в реляционных базах данных в принципе нет, в задаче речь не идет. Стандартная задача об ограничении доступа. Воспользуйтесь поиском по форуму, она обсуждается регулярно. Судя по приведенному фрагменту задачи, это наиболее простой из возможных вариантов ее постановки. Для решения достаточно хранить идентификатор пользователя и иметь простейший набор правил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 20:56 |
|
||
|
Выбор типа внешнего ключа
|
|||
|---|---|---|---|
|
#18+
Похоже я сделал ошибку, употребив термин "объект" - прошу прощения:-) В данном случае скорее всего лучше использовать термин "сущность". guest_20040621Стандартная задача об ограничении доступа. У меня голова болит не столько об ограничении доступа - тут проблем нет. Меня интересует, каким образом более оптимально организовать связь между сущностями и записями в журнале. Мне на ум пока-что пришло 4 возможных варианта. alexeyvgТо-есть только регистрация без дальнейшего её использования? Хотя подождите, какая регистрация, если записи можно редактировать? Это тогда не журнал, а прямо документы какие-то :-) Дальнейшее использование возможно только в виде выборки - посмотреть, какая испория есть по той или иной сущности. Редактирование своих записей возможно будет только в течении текущего дня на случай каких-либо опечаток. alexeyvgЕсли это просто журнал (лог), то 1 Наибольше склоняюсь к 1, но "бес путает" выбрать 3. Есть такое предчувствие (предчувствие потому, что раньше с таким не сталкивался), что при некоторых отчетах для того, чтобы подтянуть "правильную" сущность придется парсить родительский код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2009, 22:21 |
|
||
|
Выбор типа внешнего ключа
|
|||
|---|---|---|---|
|
#18+
> Меня интересует, каким образом более оптимально организовать связь между сущностями и записями в журнале. В каком журнале? Никаких журналов для решения сформулированной задачи не нужно. Там нет ни слова об истории изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2009, 02:00 |
|
||
|
|

start [/forum/search_topic.php?author=The+guest&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 689ms |
| total: | 876ms |

| 0 / 0 |
