|
|
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
softwarerВ своих внутренних динамических структурах. В файлах с постоянной длиной записи-блока. softwarerрассуждать при этом о трудностях динамического кодирования просто смешно./quot] Мне не очень - времени жалко. [quot softwarer] для редкого частного случая используемого Вами инструмента pl/sql - точно экзотика softwarerтехнология должна влиять на выбор инструмента Это верно, и именно по этому pl/sql, а не делфя или с++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 16:10 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
мод softwarerВ своих внутренних динамических структурах. В файлах с постоянной длиной записи-блока. Верно. Вы еще вспомните, что вся информация в компьютерах состоит из записей постоянной длины (1 байт).... И тем не менее, из них складываются динамические структуры. мод softwarer для редкого частного случая используемого Вами инструмента pl/sql - точно экзотика Для кодирования гуя - безусловно. мод softwarerтехнология должна влиять на выбор инструмента Это верно, и именно по этому pl/sql, а не делфя или с++. Получается странная логика рассуждений. Сначала Вы выбираете инструмент, максимально близкий к БД, а затем из-за сложности инструмента лишаете себя существенной части базового функционала БД (вменяемой автоматической поддержки целостности). Выходит что-то типа "все минусы в одном флаконе". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 16:18 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
softwarer EstetsСкипнуто несколько общих рассуждений ;) То есть Вы с ними согласны? Я с ними не согласен, как и с многоми далее, но еще раз повторю я никого не собираюсь переубеждать. Укажу только на две ошибки softwarer EstetsРазработка интерфейса для "автоматического рисования по примеру" Еще раз: если не умеете делать - не говорите, что этого нельзя сделать. На любом нормальном инструменте можно написать одну форму, редактирующую указанную из множества однотипных таблиц. Без всякой дополнительной трудоемкости. Трудоемкость регистрации нового справочника - внесение одной строки в таблицу . Если используемый Вами инструмент так не умеет.... хм, я бы всерьез задумался, нафига он мне нужен. Вы забыли об одной простой вещи, кроме регистрации справочника вам нужно еще эту таблицу создать и раздать права. А это уже требует другого набора прав у пользователя. Если мы конечно даем право пользователю создавать "Простой справочник". Плюс потенциальная проблема с несоответствием полей в новой таблице образцу, если это делает программист. Плюс еще раз повторю проблема синхронизации данных в справочнике списку таблиц. Если вам кажется что в коллективе даже из десятка программистов все точно знают какую таблицу удалили, изменили или переименовали, то вы неисправимый оптимист. softwarer Estetsно не стоит заявлять категорически "Я вижу только минусы и не вижу плюсов". Тем более не стоит лгать. Хорошо, звиняюсь точная цитата была softwarer что касается именно архитектуры "все в одном" в случае именно таблиц-справочников в БД, "помогающие плюсы" практически отсутствуют (в топике не было названо ни одного), "мешающие минусы" я назвал. Категоричное и неверное утверждение. softwarer EstetsВ данном случае "генерить идиотские хранимки" было частью технического задания на разработку приложения и было установлено заказчиком, Замечательно. Итак, это обвинение с Вас снято, но возникает вопрос: почему Вы преподнесли разовый идиотизм заказчика как глобальный недостаток технологии? Полагаете, это корректно? Если Вы считаете требование безопасности "пользователи ни при каких обстоятельствах не имею прямого доступа к таблицам" идиотским, ... softwarer Вы этого просто никогда не пробовали и боитесь по религиозным соображениям. Динамический SQL с клиента закрыт т.к. закрыты таблицы, а за использование динамического SQL на сервере бил по рукам. Можете считать это "религиозными убеждениями" я не против. Слишком много ошибок бывает допущено при написании процедур что бы еще бороться с трудновоспроизводимыми ошибками DynamicSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 18:01 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
EstetsВы забыли об одной простой вещи, кроме регистрации справочника вам нужно еще эту таблицу создать и раздать права. А это уже требует другого набора прав у пользователя. Если мы конечно даем право пользователю создавать "Простой справочник". Боюсь, Вы потеряли контекст цитаты. В той фразе, на которую я отвечал, Вы говорили про трудоемкость кодирования кучи форм для редактирования кучи справочников - и это, как мы надеюсь согласны, делает не "пользователь". Ответ относится именно к этому - к тому, что при желании тривиально делается одна форма, редактирующая типовые справочники, и вместо всей описанной Вами трудоемкости остается - вставка строки в конфигурационную таблицу. Таким образом, моей ошибки здесь нет. Если хотите обсудить новый аспект - проблемы создания новых таблиц пользователем - welcome. EstetsЕсли вам кажется что в коллективе даже из десятка программистов все точно знают какую таблицу удалили, изменили или переименовали, то вы неисправимый оптимист. Я неисправимый реалист, и поэтому знаю, что в любом приличном коллективе за несанкционированные изменения структуры БД больно бьют ногами, а для санкционированных применяется комплекс мер, как технических, так и организационных, практически исключающие вероятность проблем. Estets softwarerТем более не стоит лгать. Хорошо, звиняюсь точная цитата была Боюсь, Вы меня неправильно поняли. Я нисколько не обвинял Вас; смысл этой фразы - при выборе между "сказать что-нибудь отличное от категоричной цитаты, которая Вам не понравилась" и "сказать правду", второе для меня предпочтительнее. EstetsКатегоричное и неверное утверждение. Категоричное. Верное с точностью до недостатков отдельных инструментальных средств. EstetsЕсли Вы считаете требование безопасности "пользователи ни при каких обстоятельствах не имею прямого доступа к таблицам" идиотским, ... Во-первых, не передергивайте. Из озвученного требования совершенно не следует оправдание генерации идиотских хранимок. Во-вторых, предлагаю не углубляться в обсуждение "пользователи не должны иметь", поскольку это будет большая и отдельная тема. Она неоднократно обсуждалась; если поиска Вам не хватит, создайте соответствующий топик, и я опубликую свое мнение по этому поводу. EstetsДинамический SQL с клиента закрыт т.к. закрыты таблицы, а за использование динамического SQL на сервере бил по рукам. Можете считать это "религиозными убеждениями" я не против. Слишком много ошибок бывает допущено при написании процедур что бы еще бороться с трудновоспроизводимыми ошибками DynamicSQL. Мне это напоминает того моего начальника на заре моей трудовой деятельности, который пришел в ужас, увидев, что я использовал в коде savepoint-ы, и попробовал устроить мне показательную обструкцию с аргументацией "никогда о таком не слышал, и вообще еще неизвестно, работают они или нет". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 19:41 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
Господа, Ну вы разошлись... Давно пользую для хранения списков простую структуру из 2-х таблиц Glossary - оглавление ------- Glyid (AutoIncrement) GlyCode (varchar(25)) GlyName (varchar(255)) ... Terms - термины ------ Trmid (AutoIncrement) GlyCode (varchar(25)) TrmCode (varchar(25)) TrmName (varchar(255)) ... в основных таблицах только символьные коды и ни каких Id Проверку, если надо, то в тригер и всё видно, всё понятно не создавайте себе лишних трудностей, а то ещё каждый вид документа начните в отдельную таблицу класть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 03:17 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
EstetsМинусы подхода 1 справочник - 1 таблица: 1) Разработка серверной и интерфейсной части под каждый новый справочник. Не будем бить себя в грудь утверждая что это занимает мало времени, в случае универсального интерфейса надо вбить 1 строчку в список типов простых справочников с новым кодом и наименованием и все. 2) Поддержка серверной и клиентской части. У нас зарегистрировано в системе 190 типов простых справочников. Это 1 таблица и 4 процедуры на Select, Ins, Upd, Del. В клиентской части это 1 пункт меню список с фильтром и вызываемый из списка редактор. Соответственно для подхода "1х1" это 190 таблиц и 760 процедур в серверной части и 190 кнопок/пунктов меню в клиентской. Выбор за вами ;-)Странно слышать подобные слова от PowerBuilder разработчика :-))) Динамическая клиентская часть реализуется от силы парой десятков строк, а тривиальные процедуры, если они так необходимы, можно генерировать автоматически. IMHO возможность гарантировать ссылочную целостность перевешивает любые минусы, связанные с увеличением (зачастую мнимым) трудоемкости разработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 10:21 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
EstetsМожем создать одно окно и ДропДаунЛистБокс для выбора, но тогда мы столкнемся с необходимостью вести "мета-справочник справочников" где будет храниться информация по справочникам системы и таблицам где они расположены.С этим неплохо справляется любая СУБД. Вам надо всего лишь обратиться к системным таблицам :-) В любом случае вам надо хранить информацию о том, к какому справочнику относится тот или иной набор записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 10:33 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
softwarer Выходит что-то типа "все минусы в одном флаконе". Я бы сказал - и плюсы и минусы. В этом и сложность выбора, а иначе и проблем бы не было. Вы конечно скажите что проблемы и нет, но откуда тогда постоянно возникающие вопросы (на этом же форуме). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 11:19 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
Alexander Beznin не создавайте себе лишних трудностей, а то ещё каждый вид документа начните в отдельную таблицу класть... Большинство так и делает :) - результат предсказуем ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 11:23 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
PL99IMHO возможность гарантировать ссылочную целостность перевешивает любые минусы, связанные с увеличением (зачастую мнимым) трудоемкости разработки. IMHO не надо делать из ссылочной целостности идола и приносить ему в жертву функциональность системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 11:26 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
Alexander BezninДавно пользую для хранения списков простую структуру из 2-х таблиц ... в основных таблицах только символьные коды и ни каких Id Проверку, если надо, то в тригер и всё видно, всё понятно не создавайте себе лишних трудностей, а то ещё каждый вид документа начните в отдельную таблицу класть...Мда... вы, батенька, экстремал...foreign key придумали трусы Скажите, а у вас никогда не было такого, что кто-то удалил из справочника строку, и теперь непонятно к чему относится запись в основной таблице? И коды никогда не дублировались по недосмотру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 11:30 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
мод softwarer Выходит что-то типа "все минусы в одном флаконе". Я бы сказал - и плюсы и минусы. В этом и сложность выбора, а иначе и проблем бы не было. Вы конечно скажите что проблемы и нет, но откуда тогда постоянно возникающие вопросы (на этом же форуме).Я могу сказать откуда - от ЛЕНИ. От лени создавать и поддерживать новые объекты в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 11:32 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
модЯ бы сказал - и плюсы и минусы. В этом и сложность выбора, а иначе и проблем бы не было. Я к сожалению настолько не знаю формсов, что практически не в состоянии обсудить варианты решения этой ситуации с их помощью. Хотя это наверняка возможно - скажем, реализацией динамики в БД. С точки зрения плюсов и минусов..... действительно, получается какой-то тришкин кафтан. Если, как я правильно понимаю Ваше высказывание, Вы выбрали инструмент "под БД", то отход от использования средств БД противоречит поставленной цели - получается так, что "пошли вроде направо, а двигаемся почему-то влево". Это относится не только к ограничениям целостности в данном случае, но и к другим периодически мелькающим в форуме Oracle вопросам поддержки формсами тех или иных фич БД. мод Вы конечно скажите что проблемы и нет, но откуда тогда постоянно возникающие вопросы (на этом же форуме). Какие именно? Как Вы несомненно знаете, есть набор тем, которые будучи не слишком обоснованными, тем не менее периодически всплывают. Скажем, только вчера в форуме Oracle в очередной раз всплыла тема "гарантированный порядок записей в выборке без применения order by", которая многократно обсуждалась в половине форумов sql.ru, каждый раз завершалась объяснением "используйте order by", люди в общем понимали и не возражали, и тем не менее, через несколько недель поднимался очередной топик.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 11:33 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
PL99 EstetsМинусы подхода 1 справочник - 1 таблица: 1) Разработка серверной и интерфейсной части под каждый новый справочник. Не будем бить себя в грудь утверждая что это занимает мало времени, в случае универсального интерфейса надо вбить 1 строчку в список типов простых справочников с новым кодом и наименованием и все. 2) Поддержка серверной и клиентской части. У нас зарегистрировано в системе 190 типов простых справочников. Это 1 таблица и 4 процедуры на Select, Ins, Upd, Del. В клиентской части это 1 пункт меню список с фильтром и вызываемый из списка редактор. Соответственно для подхода "1х1" это 190 таблиц и 760 процедур в серверной части и 190 кнопок/пунктов меню в клиентской. Выбор за вами ;-)Странно слышать подобные слова от PowerBuilder разработчика :-))) Динамическая клиентская часть реализуется от силы парой десятков строк, а тривиальные процедуры, если они так необходимы, можно генерировать автоматически. IMHO возможность гарантировать ссылочную целостность перевешивает любые минусы, связанные с увеличением (зачастую мнимым) трудоемкости разработки. Это было сказано не к тому, что так нельзя делать Физически в программе есть одно окно window которое используется для показа полутысячи разных списков и отчетов, соответственно нельзя сказать что не используеься динамическая клиентская часть, и автоматическая генерация процедур наличествует. Но, это потребовало около 2-х человеко/лет на разработку и заказчик это оплатил (24*1500$=36000$). Если есть такая возможность пожалуйста, если нет то не стоит говорить о том что динамическая структура "1х1" по затратам соответствует решению "все в одной таблице" (2 человеко/дня на разработку и отладку = 150$) Вопрос с сылочной целостностью это более серьезный вопрос, действительно если она необходима, то подойдет только решение "один справочник - одна таблица". Поддержка целостности с помощью процедур и триггеров для решения "все в одном" на порядок более затратная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 11:35 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
EstetsНо, это потребовало около 2-х человеко/лет на разработку и заказчик это оплатил (24*1500$=36000$). Если при этом речь идет о разных таблицах из двух одинаковых полей, это очень похоже на самую наглую махинацию в истории земного бизнеса ;) EstetsЕсли есть такая возможность пожалуйста, если нет то не стоит говорить о том что динамическая структура "1х1" по затратам соответствует решению "все в одной таблице" (2 человеко/дня на разработку и отладку = 150$) Да, не соответствует. Я бы сказал, "час на разработку и отладку" = $16. В этот час входят: - метод создания таблиц справочников с трудоемкостью, равной вводу с клавиатуры имени таблицы - интерфейс редактирования любой созданной таблицы - интерфейс выбора из любой созданной таблицы Интерфейсы подразумеваются на уровне базовых возможностей компонент (скажем, если используете DevExpress, поиск по первым символам получите автоматически, если используете стандартные, потребуется дополнительно пять-десять минут). EstetsВопрос с сылочной целостностью это более серьезный вопрос, действительно если она необходима , то :) Estetsподойдет только решение "один справочник - одна таблица". В принципе ссылочную целостность можно использовать и для варианта "все в одном". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 11:50 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
softwarer EstetsНо, это потребовало около 2-х человеко/лет на разработку и заказчик это оплатил (24*1500$=36000$). Если при этом речь идет о разных таблицах из двух одинаковых полей, это очень похоже на самую наглую махинацию в истории земного бизнеса ;) Речь шла об инструменте (ядре) приложения которое как раз и позволяет в десяток кликов создать новый справочник/документ по аналогии с существующим, но лежащий на другой таблице включая интерфейсные процедуры и не требующий вмешательства в клиентскую часть, для начала работы пользователей с новым документом. softwarer EstetsЕсли есть такая возможность пожалуйста, если нет то не стоит говорить о том что динамическая структура "1х1" по затратам соответствует решению "все в одной таблице" (2 человеко/дня на разработку и отладку = 150$) Да, не соответствует. Я бы сказал, "час на разработку и отладку" = $16. В этот час входят: - метод создания таблиц справочников с трудоемкостью, равной вводу с клавиатуры имени таблицы - интерфейс редактирования любой созданной таблицы - интерфейс выбора из любой созданной таблицы Интерфейсы подразумеваются на уровне базовых возможностей компонент (скажем, если используете DevExpress, поиск по первым символам получите автоматически, если используете стандартные, потребуется дополнительно пять-десять минут). Эх где бы таких программистов и побольше Правда отошел я от программирования, но времена были указаны реальные, сколько выполнял ту или иную работу человек на такой ставке. softwarer EstetsВопрос с сылочной целостностью это более серьезный вопрос, действительно если она необходима , то :) Estetsподойдет только решение "один справочник - одна таблица". В принципе ссылочную целостность можно использовать и для варианта "все в одном". Можно, но как я сказал выше, сложнее. Либо хранить в документах два поля ID-тип справочника, что сводит на нет удобство использования но позволяет использовать ссылочную целостность (в нашем случае простые справочники имеют двойной ключ тип-id). Либо использовать триггерные проверки зашивая туда тип справочника, что долго и муторно. Либо не использовать ссылочную целостьность вообще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 12:25 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
Была давно такая идея... придумать модель универсального справочника, сделать для него универсальную форму ввода/выбора/поиска... Вошли в штопор на первом же этапе -- дать определение понятию СПРАВОЧНИК. Придумали много, но почти все реальные сущности, которые мы НАЗЫВАЛИ справочниками под придуманные определения не подходили. Далее... почти все что называлось у нас справочником имело свои особенности и в целом общего имело столько же, сколько общего между яблоком и устрицей... их обоих можно есть и обоими можно отравиться... На этом сходство заканчивается. Возникает ощущение, что некоторые не избавились от хм... страстного желания унификации. Т.е. если две совершенно разные сущности имеют атрибут ИМЯ, то нужно обязательно им выделить общего предка и вынести туда этот атрибут (т.е. положить все на одну таблицу). Как правило, при таком подходе приложение начинает разрываться внутренними связями и рушится. Если две сущности имеют одинаково произносимые атрибуты , это еще не означает их родственность. И как правило есть совершенно разные сущности (классы, таблицы) с одинаково звучащими именами атрибутов/методов. Мне лень искать примеры... но возьмем класс TFileStream и TForm из VCL, у них у обоих есть метод Close. И что, по этой причине дать им общего предка? Аналогичная ситуация со свойствами Checked, SelectedIndex -- оно есть у многих, но общего предка с этим свойством нет. Я привел пример из VCL, но разницы с таблицами в данном случае нет. Здесь приводили пример со 190 справочниками... Мне интересно... они что действительно все имеют только два атрибутама (ИД, ИМЯ) и никаких других отличий? Может в данном случае это действительно ОДНА сущность с тремя атрибутами (ИД, ИМЯ, ТИП)? Тогда и вопросов нет... Если же справочник товаров разделять на носки и топоры, то тогда и 2000 справочников может быть. Пример SYSOBJECT из mssql, как довод за "все в одном" совершенно некорректен в данном случае. Это тот случай, когда именно так и должно быть. Если представить эту структуру графически, то это будет дерево классов, порожденных от общего предка ОБЪЕКТА БД. У всех у них очень много общего и над всеми ими производятся общие однотипные операции. Это обычный способ отображения дерева классов на ER-структуру -- общий предок с максимумом возможных полей находится в одной таблице, очень специфическое потомков выносится в дочерние таблицы. Еще очень важно в этом примере то, что все объекты БД имеют ссылки друг на друга. Если представить их все в виде отдельных таблиц, то они будут иметь связи "все со всеми". Отображение на одну таблицу позволяет избавиться от этой гирлянды связей. И "гулять" по такой структуре намного легче, потому что много связей между объектами. В большинстве же случаев так называемые справочники не имеют между собой большого кол-во внутренних связей и, что самое главное, не требует хм... как бы точнее.... перекрестной обработки, в общем не нужно "ходить" сразу по всем справочникам. Остается вопрос и будущего. Даже если сейчас есть 100 справочников структуры (ИД, Имя), то где гарантия, что завтра у сотого не появятся особенности? И тут лучше сегодня иметь 100 таблиц, 4 хр. процедуры на insert/update/delete/select и 3 окошка для отображения/выбора/изменения. Завтра, когда изменится табличка за номером 100, я добавлю ( в самом тяжелом случае ) еще 4 хп, 3 окошка, и не нужно будет ломать голову как втиснуть новые требования в старую структуру . Еще мерещится вопрос разработки... Если у меня 190 таблиц в ЕрВине, они все разные... И когда от одной из них тянется связь, я точно знаю, от какой. Если же у меня одна чудо-таблица, то все связи идут от одной таблицы... И что потом по такой структуре можно понять??? С чем именно связаны таблицы "Заказ--Состав заказ", с валютой, с единицой измерения, товаром??? Все связи будут тянуться к одной таблице (все в одном). И что в таком случае делать с ограничениями целостности? Ведь где-то правило будет restrict, где-то set to null... --- Обсуждение подхода "все в одной таблице" имеет смысл только для каждого отдельного случая . Два таких типовых примера я назвал, а других и не знаю. Утверждения, типа "все в одном просто лучше множества таблиц" обнаруживает непонимание самих основ программирования. P.S. Все таки интересно посмотреть на перечень 190 справочников только из двух полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 12:48 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
СержP.S. Все таки интересно посмотреть на перечень 190 справочников только из двух полей.Вот список наших категорий. Каждая категория - это отдельный справочник. Большинство из них - это варианты ответа в анкетах для операторов Call-центра под разные проекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 13:03 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
BelyКаждая категория - это отдельный справочник. Большинство из них - это варианты ответа в анкетах для операторов Call-центра под разные проекты. В таком виде мало понятно, что они из себя представляют... например, 9 строк с приставкой SPORT_ SPORT_COMMON 21 SPORT_FIRM_TYPE 3 SPORT_FISHING 12 SPORT_OTHER_TYPES 12 SPORT_SERVICE_TYPE 5 SPORT_SUMMER_TOURISM 22 SPORT_TRENAJORS 11 SPORT_WEAPON 15 SPORT_WINTER_TOURISM 9 Это 9 справочников? И что он содержат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 13:25 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
Серж BelyКаждая категория - это отдельный справочник. Большинство из них - это варианты ответа в анкетах для операторов Call-центра под разные проекты. В таком виде мало понятно, что они из себя представляют... например, 9 строк с приставкой SPORT_ SPORT_COMMON 21 SPORT_FIRM_TYPE 3 SPORT_FISHING 12 SPORT_OTHER_TYPES 12 SPORT_SERVICE_TYPE 5 SPORT_SUMMER_TOURISM 22 SPORT_TRENAJORS 11 SPORT_WEAPON 15 SPORT_WINTER_TOURISM 9 Это 9 справочников? И что он содержат?Это 9 справочников - содержание анкеты по ассортименту спортивных магазинов. содержат перечень ассортимента и характеристик. Возможен множественный выбор признаков. часть из этих категорий - выложено в файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 13:44 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
EstetsРечь шла об инструменте (ядре) приложения которое как раз и позволяет в десяток кликов создать новый справочник/документ по аналогии с существующим, но лежащий на другой таблице включая интерфейсные процедуры и не требующий вмешательства в клиентскую часть, для начала работы пользователей с новым документом. Хм. Если бы речь шла только о справочниках, я бы назвал цифру "совершенно нереальной". В том, что касается документов, есть совершенно непредсказуемый пункт "интеграция с учетной машиной", определение действий, которые должны происходить при той или иной операции с документом. EstetsЭх где бы таких программистов и побольше Правда отошел я от программирования, но времена были указаны реальные, сколько выполнял ту или иную работу человек на такой ставке. Я верю, что они их столько выполняли :) Я назвал то время, за которое я могу "сесть и сделать" означенное. Есть такой интересный эффект, если разбирать подобные стандартные решения - выходит, что куча трудоемкости уходит не на основную задачу, а на возникающие попутно хотелки и рюшечки, причем опять же не столько на реализацию, сколько на их согласование. EstetsМожно, но как я сказал выше, сложнее. Либо хранить в документах два поля ID-тип справочника, что сводит на нет удобство использования но позволяет использовать ссылочную целостность Хм. Не очень понял, чем это сводит на нет удобство использования (если, конечно, Вы не имеете в виду идиотизм независимой нумерации id внутри типа). Все то же самое. Основной минус ключа по двум полям - мусор. Как мусор в данных, лишнее место в таблице итп, так и мусор в метаданных (поля, которые не фигурируют нигде ни в интерфейсе, ни в процедурах). Наилучший имхо способ сочетать "одну таблицу" со ссылочной целостностью - использовать generalized key. Например, выделить каждому справочнику по диапазону из миллиона значений id. Понятие "категории" при этом в явном виде уходит, а ограничения целостности становятся комбинацией наподобие Код: plaintext 1. 2. 3. 4. 5. 6. 7. Тоже, конечно, уродство, но работать будет получше других вариантов. EstetsЛибо не использовать ссылочную целостьность вообще Угу. Пример моей любимой концепции, называется "эскалация кривизны". Я бы отметил исключительную уместность подхода. Я готов понять ситуацию, когда, после того как вендор тщательно протестировал приложение, админ, пытаясь выжать из системы несколько процентов производительности, отключает некоторые ключи. Но в ситуации "мы даем пользователю инструмент доработки системы и при этом отключаем тривиальные проверки целостности".... Это здорово похоже на поиск подружки на ночь в ближайших окрестностях КВД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 14:02 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
BelyЯ могу сказать откуда - от ЛЕНИ. Ну, это слишком простое объяснение, причины есть позерьезнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 15:30 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
мод BelyЯ могу сказать откуда - от ЛЕНИ. Ну, это слишком простое объяснение, причины есть позерьезнее.Тогда Вы их назовите... Трудозатраты на создание вспомогательных объектов? Это автоматизируется... Трудозатраты на печатание запросов? Это вообще смешно - скорость работы программиста слабо связана с такой разницей в размерах запроса. Издержки производительности базы? Их тоже нет... что-то еще назовете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 15:37 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
Серж P.S. Все таки интересно посмотреть на перечень 190 справочников только из двух полей. Например документооборот, у каждого документа есть признаки: 1-Внешний 2-внутренний 1-Входящий 2-Исходящий 1-Бумажный 2-Электронный 1-Передан по почте 2-Курьером 3-По сети итд. итп. часть полей чисто справочная, от установки других зависит процесс обработки документов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 15:51 |
|
||
|
Однотипные таблицы
|
|||
|---|---|---|---|
|
#18+
softwarer BelyУ нас для таких супер простых вариантов есть таблица SIMPLE_LIST, где есть поле NAME, ID, CATEG_NAME Когда-то, году в 94-м, я работал примерно так же, на клиппере. Потом, когда пришел на Oracle, задал вопрос - а почему бы не сложить простые справочники таким манером. В ответ на что получил просьбу назвать хотя бы одно осмысленное преимущество такой вот "кучи малы" (под неосмысленными я понимаю, например, экономию нескольких килобайт дискового пространства). Попробовал - и не смог. Так до сих пор и не могу, одни минусы. Может термин "справочник" запутывает? Корова - это элемент справочника. Но ведь это же и факт существования такого животного. То есть, концептуально, такой же факт, как и факт покупки коровы, например. Делать одну таблицу "Товар" или сотни и тысячи таблиц "Товары такие-то"? А ссылки на товары в операциях, например в таблице покупок, хорошо будут выглядеть, если товары во многих таблицах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 16:38 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34585931&tid=1542889]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
205ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 574ms |

| 0 / 0 |
