| 
 | 
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthatLSVТы сначала дай ответ на вопрос, а том будешь сыпать умными аббревиатурами. Некогда сейчас. Чуть попозже нарисую картинку. Пример с TPT (table per type): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Пример с TPH (table per hierarchy): [src] create table Document ( Id int primary key, Author nvarchar(50) not null, CreationDate datetime not null, DocumentType int not null, -- discriminator TextContent nvarchar(max) null, ImageContent nbinary(max) null ) create table Document_ParentDocument ( DocumentId int foreign key references Document(Id), ParentDocumentId int foreign key references Document(Id), primary key (DocumentId, ParentDocumentId) ) [src] ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 25.01.2018, 23:26 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthatПример с...Порожняк без конкретики. Вопрос был про письмо-жалобу. 20-30-100 возможных типов документов-родителей (система развивается и число может расти). Для простоты - один док-родитель на письмо. Покажи структуру таблиц письма с ссылкой на док-родитель. Предположим, что есть не только письма, а еще много документов с подобными ссылками. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 10:53 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LSVfkthatПример с...Порожняк без конкретики. Вопрос был про письмо-жалобу. 20-30-100 возможных типов документов-родителей (система развивается и число может расти). Для простоты - один док-родитель на письмо. Покажи структуру таблиц письма с ссылкой на док-родитель. Предположим, что есть не только письма, а еще много документов с подобными ссылками. Я тебе что, бесплатный консультант, что ли? С документами, как делать TPT/TPH я тебе показал, теперь ты какие-то письма начинаешь приплетать. Впрочем, если ты даже для чего нужен foreign key не осилил, то тебе никакие консультации все равно не помогут. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 12:33 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthatЯ тебе что, бесплатный консультант, что ли?Слился кароч.... :) Не удивительно. Даже не понял заданный вопрос. Разные типы документов это в общем случае разные сущности(таблицы), а не все в одной. ID_товара, ID_оплаты, ID_накладной и т.д. Патерны он выучил..... бгг ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 14:56 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LSVПатерны он выучил..... бгг Выучил, чо. Ну а ты так до пенсии и рисуй таблички в дизайнере левой ногой. Как-то так, как узбекский погонщик верблюдов - что вижу, о том и пою. Услышал слово "документ" - сразу же рисуем табличку, услышал слово "письмо" - сразу же рисуем еще одну табличку. Смотреть потом на результаты этого творчества без слез нельзя. А в резюме зато гордое - "спроектировал БД на тридцать восемь тысяч таблиц". ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 15:10 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthatВыучил, чо. Ну а ты так до пенсии и рисуй таблички в дизайнере левой ногой. Как-то так, как узбекский погонщик верблюдов - что вижу, о том и пою. Услышал слово "документ" - сразу же рисуем табличку, услышал слово "письмо" - сразу же рисуем еще одну табличку. Смотреть потом на результаты этого творчества без слез нельзя. А в резюме зато гордое - "спроектировал БД на тридцать восемь тысяч таблиц".       "Слился" пишется короче. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 15:39 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LSV"Слился" пишется короче. А самому дойти как в той схеме, что я привел как пример, добавить письма и привязать их к документам, используя только одну связь, не судьба? Надо как дитю в картинках объяснять? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 16:48 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthatLSV"Слился" пишется короче. А самому дойти как в той схеме, что я привел как пример, добавить письма и привязать их к документам, используя только одну связь, не судьба? Надо как дитю в картинках объяснять?Мне не нужно доходить до твоей схемы. Мне просто интересно, что получается у подобных умников, бездумно начитавшихся умных патернов. :) Мое решение простое как дверь: Прямо в шапке письма два поля ТипДок/IDдок. И всё... Если вдруг у документов будут разного типа ID, то придется добавить еще поле(я) по кол-ву возможных типов ключей. Неприятно конеш, но выхода нет. Напомню: разные типы документов это в общ.случае разные таблицы. Бывает, что в одной группе таблиц живет неск. типов д-тов. Но рассматриваем это как исключение, а не как правило. А теперь расскажи как это будет выглядеть в твоей схеме. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 17:14 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LSVА теперь расскажи как это будет выглядеть в твоей схеме. Код: sql 1. 2. 3. 4. 5. Одна связь. Всё, больше не надо. И в одном (TPT) и в другом (TPH) варианте схемы. То, о чем ты толкуешь, это TPC (table per concrete type) схема - она имеет право на жизнь в отдельных случаях, но, чаще, с ней одна только дрочь из-за дублирующихся полей, хлопот с уникальностью Id и геммора со связями. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 17:41 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthatОдна связь. Всё, больше не надо.Не пойму, ты тролишь или аццки тупишь ?????? Родительские документы могут быть в разных таблицах, Карл ! Т.е. ДокID=10 может быть и в накладных и в счетах и в оплатах и в заказах и т.д. И на любой из них может быть ссылка, как на родительский д-т. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 19:01 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Если по первоначальной задаче ТС: 1. Таки основные данные организаций выделить в таблицу Контрагент или Организация. Наименование организации меняется. Не так давно, например, ЗАО поменяли на АО. В зависимости от потребностей, привязываться к дате (будет проблемы, если запросят распечатать потерянную накладную за прошлый год и там будет новое наименование контрагента). ИНН, ОГРН постоянный. КПП меняется. ОКВЭД меняется, но не уверен, что вообще эта фигня нужна. Адреса тоже меняются и тут тоже есть нюанс. Если просто для документов нужен адрес, то хранить тупо строкой и забить. Если как-то связано с выгрузкой отчётности, то там уже нужно деление на куски и сверка с КЛАДР. 2. Не знаю специфики, как я себе это представляю: заключается договор на аренду склада и прописывается, что платит фирма А, которая привозит на склад 10 мешков цемента и ведро маринованных огурцов, потом приезжает фирма Б, забирает огурцы и еще фирма В забирает цемент. Вообще не вижу смысла разносить их по разным таблицам, данные у фирм одинаковые. Нужно только хранить для конкретных ТМЦ кто привозит, кто забирает и т.п. Таблицы Договор и Поставка/Перемещение просто завести и не нужно никого ни с кем делить. А то начнётся, что будет булево поле, по которому будет видно, кто привозит, а кто забирает. У пользователя это будет выглядеть как галочка и он должен внимательно на эту фигню смотреть и при генерации отчетов и документов та же история будет. 3. У организаций может быть несколько счетов и могут меняться реквизиты каждого счета (в зависимости от задач, можно поддерживать версионность внутри счёта или просто при изменении одного реквизита заводить новую запись, а старую делать неактуальной). Сейчас, например, периодически меняют БИК и кор.счет у банков. Соответственно, у счетов есть сроки действия. Нормальные организации рассылают заранее письмо, что у их банка меняются реквизиты, т.е. должна быть возможность сразу забить новые реквизиты и дать программе использовать только актуальные реквизиты. БИК, кор. счет, наименование банка - это по идее отдельный справочник. Наименование получателя лучше дополнительно здесь хранить, т.к. бывают лицевые счета (в основном у гос. структур счета идут как лицевые в каком-нибудь казначействе). Еще иногда за одну организацию платит другая организация. В идеале этот момент тоже проработать. Договор с ООО "Ромашка", а деньги приходят от ООО "Букашка" с назначением платежа "Оплата за ООО "Ромашка" по письму № Г от вчера за аренду склада по договору такому-то". Это вполне обычная операция, по бухгалтерии проводится, лучше тоже предусмотреть. 4. Имя контрагента. Возможно, есть смысл сделать как в 1С и хранить два наименования. Официальное как в учредительных документах и удобное для пользователя. Мало кому интересно смотреть список из ООО "Ромашка" ООО Корпорация "Мелиорация" АО "АБЫР "ВАЛГ" ПАО "Баобао" Организационно-правовую форму или удаляют или в конец дописывают, с кавычками и всякими словами корпорация всяко разно пользуются. Люди просто запоминают, что компания называется "Мелиорация" и неудобно вспоминать, что там еще слово корпорация есть, ОПФ непонятна какая, а может недавно сменили. Нужна ООО "Ромашка" - сразу на букву Р побежал смотреть, так удобнее, как мне кажется. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 19:39 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LSVНе пойму, ты тролишь или аццки тупишь ?????? Родительские документы могут быть в разных таблицах, Карл ! Паттерн subtype-supertype на этой форуме обсуждается только чуть реже чем EAV - как можно было за столько лет не разобраться в нем? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 19:45 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Кот МатроскинПаттерн subtype-supertype на этой форуме обсуждается только чуть реже чем EAV - как можно было за столько лет не разобраться в нем? Да для него же все это считает "ООП головного мозга". Непрошибаемый, шо песец. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.01.2018, 19:59 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthatКот МатроскинПаттерн subtype-supertype на этой форуме обсуждается только чуть реже чем EAV - как можно было за столько лет не разобраться в нем? Да для него же все это считает "ООП головного мозга". Непрошибаемый, шо песец.Неспособность дать ответ и переход на личности.... Ну прямо Остап а Васюках. :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.01.2018, 22:31 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Кот МатроскинLSVНе пойму, ты тролишь или аццки тупишь ?????? Родительские документы могут быть в разных таблицах, Карл ! Паттерн subtype-supertype на этой форуме обсуждается только чуть реже чем EAV - как можно было за столько лет не разобраться в нем? Как этот паттерн применить к задаче: в таблице нужен FK на документ или контрагента или справочник? Мне в голову приходит только изначальное введение таблицы с хранением всех ИД и соответствующего типа/имени таблицы. Эдакая таблица, в которой хранятся все ИД всех таблиц, соответственно, ИД уникальны в рамках базы и во всех таблицах нужно следить, чтобы ИД брались из этой таблицы, а не генерировались свои. Можно конечно заранее выделить "супертип" для этого набора документ,контрагент,справочник, но завтра условия поменяются и схему БД перекраивать? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.01.2018, 00:10 | 
  
  
  
   | 
||
| 
 
Структура таблицы контрагентов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Pu4koffКот Матроскинпропущено... Паттерн subtype-supertype на этой форуме обсуждается только чуть реже чем EAV - как можно было за столько лет не разобраться в нем? Как этот паттерн применить к задаче: в таблице нужен FK на документ или контрагента или справочник? Если Вам нужна единая ссылка на что-то, у чего нельзя выделить супертип - скорее всего это концептуальная ошибка. Попробуйте описать словами, что это за поле и на что указывает. Pu4koffМожно конечно заранее выделить "супертип" для этого набора документ,контрагент,справочник, но завтра условия поменяются и схему БД перекраивать? Если "условия поменяются" - в общем случае да, схему БД может потребоваться перекраивать. Как-то "универсальные" БД а-ля excel (которые не надо перекраивать при изменении условий) вытеснить специализированные не могут. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.01.2018, 01:05 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=32&msg=39592532&tid=1540085]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    52ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    51ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 231ms | 
| total: | 378ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.