|
|
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть несколько типов документов. На каждый тип разный набор таблиц шапка-тело. Объединять их в одну таблицу нет смысла, тк они по сути своей разные. Возникла необходимость вести журнал экспорта этих документов. Сделал отдельную таблицу, куда пишу ПК всех этих документов. Но в данном варианте не сделать в этой таблице fk. Тк ид из разных таблиц. Ну и в таблицу экспорта - ссылки на эту таблицу. Но чтото подсказывает , что криво это. Направьте в нужном направлении мысль) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2014, 16:35 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVL Объединять их в одну таблицу нет смысла, тк они по сути своей разные. Возникла необходимость вести журнал экспорта этих документов. Разные-то разные, но для задач экспорта одинаковые. То бишь не совсем разные. AndrewVL Направьте в нужном направлении мысль)Идеальным решением будет введение общего предка всех документов (пусть даже таблица с одним полем id) затем все документы должны иметь fk на эту таблицу, и журнал экспорта будет иметь fk на нее тоже. Насколько целесообразно все переделывать - вопрос к вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2014, 16:50 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
SERG1257, Есть у меня табличка docroot. И реальные документы ссылаются на нее. Получается экспорт должен ссылаться на docroot? В данной схеме мне не особо понятно как тогда получить список документов и их типы в таблице экспорта. Те имеем в docroot Id равным 1. Всего одна запись. А документов этого типа допустим 100. И других типов в других таблицах тоже много Как понять к какому типу эта единица относится. Чтобы построить список экспортированных и не экспортированных документов? Можно конечно в docroot добавить тип документа. Но тогда запрос получается такой : where doctype = 1. И видимо с Union all по всем типам документов ? Тк хранятся в разных таблицах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2014, 16:59 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVL, мы в своё время делали общую таблицу documents: - id - идентификатор документа, - documentNo - номер документа, - documentState - состояние дкумента, - documentType - тип документа и т.п. Таблицы конкретных документов (например заказы) ссылались на общую таблицу. Отношение 1-к-1-му. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2014, 17:06 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVLНо в данном варианте не сделать в этой таблице fk. Ну так не делай FK. В чём проблема-то?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2014, 17:08 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAndrewVLНо в данном варианте не сделать в этой таблице fk. Ну так не делай FK. В чём проблема-то?.. некоей кривизны опасается (с)..введение общего предка всех документов.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2014, 18:07 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAndrewVLНо в данном варианте не сделать в этой таблице fk. Ну так не делай FK. В чём проблема-то?.. Тогда не получится контролировать целостность по этому полю. Только если на триггерах Хотя можно в корневой таблице сделать несколько полей под каждый тип документа. Тогда можно PK. Но тогда не получится not null)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 22:48 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
аля1сDimitry Sibiryakovпропущено... Ну так не делай FK. В чём проблема-то?.. некоей кривизны опасается (с)..введение общего предка всех документов.. Именно небольшая кривизна и смущает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 22:49 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVLТогда не получится контролировать целостность по этому полю. Какая ещё целостность у журнала? Он по определению должен выживать даже если сам документ уже стёрли или изменили. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 23:09 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAndrewVLТогда не получится контролировать целостность по этому полю. Какая ещё целостность у журнала? Он по определению должен выживать даже если сам документ уже стёрли или изменили. Целостность, это чтобы в это поле не нельзя было записать значение не из например таблицы doc1 Еще такой вопрос по кривизне ) Есть вот такая структура Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Получается , чтобы выбрать документы определенного подтипа по организации, надо сначала отфильтровать по doc_root.orgid .но тогда у нас получится что из docroot будут выбраны все документы организации. Даже те , которые не хранятся в docs. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 23:16 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVLЦелостность, это чтобы в это поле не нельзя было записать значение не из например таблицы doc1 Она обоюдоострая: значение из таблицы doc1 уже нельзя будет удалить если оно было хоть раз записано в журнал. В данном случае обеспечить невозможность записи левых значений лучше отбиранием права на запись у пользователей и выдачей его исключительно специально обученной процедуре, которая и экспорт проведёт и правильную запись об этом в журнале оставит. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 23:28 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAndrewVLЦелостность, это чтобы в это поле не нельзя было записать значение не из например таблицы doc1 Она обоюдоострая: значение из таблицы doc1 уже нельзя будет удалить если оно было хоть раз записано в журнал. В данном случае обеспечить невозможность записи левых значений лучше отбиранием права на запись у пользователей и выдачей его исключительно специально обученной процедуре, которая и экспорт проведёт и правильную запись об этом в журнале оставит. протправа и пользователя не понял) у меня по сути один пользователь. Тут вижу решение только через триггер. При вставке в root проверять по типу документа его наличие в таблице. Ну и исключение если что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 23:35 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVLпротправа и пользователя не понял) у меня по сути один пользователь И ты боишься как бы этот пользователь не записал в журнал экспорта всякую ерунду, поэтому хочешь защитить его (журнал) внешним ключом. Не так ли?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 23:44 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, не пользователь, а я ))) всяко бывает ) Что можете по сообщению чуть выше сказать? про выборку по организации и подтипу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 23:56 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVLЕсть несколько типов документов. На каждый тип разный набор таблиц шапка-тело. А сколько всего типов ? Планируется ли добавление новых типов документов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 09:05 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
vmagAndrewVLЕсть несколько типов документов. На каждый тип разный набор таблиц шапка-тело. А сколько всего типов ? Планируется ли добавление новых типов документов ? Сейчас 4 типа. У одного типа 12 подтипов. Типы планирую добавлять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 09:23 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVLСейчас 4 типа. У одного типа 12 подтипов. А это ещё как ? Оно не вяжется с первой постановкой... или можно считать что 3 типа + 12 подтипов = пока 15 независимых типов ? Или всё таки есть еще одна не описанная изначально иерархия ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 09:37 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
vmag, думается мне что это всё-таки иерархия и независимых типов всего 12 (по количеству подтипов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 10:04 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVLСейчас 4 типа. У одного типа 12 подтипов. Типы планирую добавлять и Mr.Fontainevmag, думается мне что это всё-таки иерархия и независимых типов всего 12 (по количеству подтипов) вообще не стыкуется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 10:24 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
vmag, извиняюсь. Невнимательно прочитал. Извините. Гаданием заниматься больше не буду. Сегодня ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 10:59 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
vmagAndrewVLСейчас 4 типа. У одного типа 12 подтипов. А это ещё как ? Оно не вяжется с первой постановкой... или можно считать что 3 типа + 12 подтипов = пока 15 независимых типов ? Или всё таки есть еще одна не описанная изначально иерархия ? все вяжется. можно просто в doc_root добавить поле docType. А подтип для одного типа документа в doc1.DocsubType. Прочие типы документов хранятся в таблицах типа docX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 14:07 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVLвсе вяжется. можно просто в doc_root добавить поле docType. я не про это... можно что угодно добавить куда угодно... мне интересно почему 2 + 2 = 9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 20:34 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
vmagAndrewVLвсе вяжется. можно просто в doc_root добавить поле docType. я не про это... можно что угодно добавить куда угодно... мне интересно почему 2 + 2 = 9 Да просто все) 4 типа. Каждый хранится в отдельной таблице. У первого типа есть 12 подтипов. Подтип это просто флаг в таблице , имеющий 12 значений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 20:44 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
AndrewVLДа просто все) 4 типа. Каждый хранится в отдельной таблице. У первого типа есть 12 подтипов. Подтип это просто флаг в таблице , имеющий 12 значений а если не 4? и если не 12 ? вот я и говорю - чтобы сделать деталь на станке - нужно хотя бы представлять её в уме правильно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 20:53 |
|
||
|
Разнородные документы
|
|||
|---|---|---|---|
|
#18+
vmagAndrewVLДа просто все) 4 типа. Каждый хранится в отдельной таблице. У первого типа есть 12 подтипов. Подтип это просто флаг в таблице , имеющий 12 значений а если не 4? и если не 12 ? вот я и говорю - чтобы сделать деталь на станке - нужно хотя бы представлять её в уме правильно... Именно 4 и 12. 4 максимум может увеличиться до 8. Хотя- это разве принципиально?) Как вариант docsubtype можно продублировать в docroot. Тогда по подтипу без проблем можно будет выборку делать. В данном варианте смущает только одно. Что в root для первого типа подтип будет заполнен. А для других типов нет. Смущает чисто концептуально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 20:57 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38794725&tid=1540748]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
164ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 289ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...