|
одно поле -> две таблицы. Что подскажет опыт?
|
|||
---|---|---|---|
#18+
но уровень серотонина нужно поднимать Хм, а можно узнать, как и зачем. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 16:58 |
|
одно поле -> две таблицы. Что подскажет опыт?
|
|||
---|---|---|---|
#18+
Впору тут еще и медицинскую рубрику организовать...:-) Или тему - "Влияние гормонов на проектировщиков баз данных" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 17:05 |
|
одно поле -> две таблицы. Что подскажет опыт?
|
|||
---|---|---|---|
#18+
2 Jinn: \r Никакой тяги - обыкновенная систематизация хранимых данных. Формы нормализации - понятие условное, я бы даже сказал утрированное. А вот то, что в дальнейшем потребуется поиск по контексту наименования - я мало сомневаюсь. Данные хранятся для использования, а не для красоты :) \r \r Ну то, что не для красоты это мы знаем :) Да, нормализация - не самоцель, но забивать или переигрывать с этим понятием не следует. Вот вы "kondi" порекомендовали дополнительный джойн, а надо ли оно ему? Вдруг у него экспериментальная рецептура состав меняет, а ее наименование не изменяется, т.е у них на предприятии бизнес-правила допускают существование нескольких объектов с одинаковыми наименованиями, но при этом с разными артикулами/кодами/ИД, например, несколько штук "торт шоколадный №28", но разными составами. Т.е опять должен определять предметник, т.е "kondi". С технической точки конечно все равно, но вот с человеческой - поиск чего-либо по наименованию, а не по числовому ИД гораздо удобнее потому что люди имена запоминают лучше чем числа\r \r Ну, я их особо и не использовал, просто обявлял символьный тип, а потом приводил в нужный. \r \r Вопрос был конкретный: есть такое в Oracle или там также как в MSSQL на основе системных типов данных или sql_variant? (не идти же мне в раздел по Oracle) ^) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 17:46 |
|
одно поле -> две таблицы. Что подскажет опыт?
|
|||
---|---|---|---|
#18+
А где можно познакомится с нормальными структурными подходами (SDLC, SASD и тд) к разработке БД и с реляционной теорией Кодда , желательно в нете? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 03:58 |
|
одно поле -> две таблицы. Что подскажет опыт?
|
|||
---|---|---|---|
#18+
Репликант Ну то, что не для красоты это мы знаем :) Да, нормализация - не самоцель, но забивать или переигрывать с этим понятием не следует. Вот вы kondi порекомендовали дополнительный джойн, а надо ли оно ему? Вдруг у него экспериментальная рецептура состав меняет, а ее наименование не изменяется, т.е у них на предприятии бизнес-правила допускают существование нескольких объектов с одинаковыми наименованиями, но при этом с разными артикулами/кодами/ИД, например, несколько штук "торт шоколадный №28", но разными составами. Т.е опять должен определять предметник, т.е kondi. С технической точки конечно все равно, но вот с человеческой - поиск чего-либо по наименованию, а не по числовому ИД гораздо удобнее потому что люди имена запоминают лучше чем числа Именно для поиска по контексту эта архитектура и расчитана. При таком поиске, еще раз заявляю, будут найдены все объекты с похожим или одинаковым наименованием. При ~500000 наименований все работает шустро. Ну, я их особо и не использовал, просто обявлял символьный тип, а потом приводил в нужный. Вопрос был конкретный: есть такое в Oracle или там также как в MSSQL на основе системных типов данных или sql_variant? (не идти же мне в раздел по Oracle) ^) Да, можно создать и использовать подобие объектов (я с ними не работаю). Эта возможность появилась в последних версиях Oracle ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 12:56 |
|
одно поле -> две таблицы. Что подскажет опыт?
|
|||
---|---|---|---|
#18+
2 Jinn По поводу параметров, конечно удобно добавлять новые, но если новых практически не появляется, то стоит ли усложнять структуру. Это универсальное решение наверно сильно помогает разработчикам в их «борьбе» с заказчиком? :) Какие критерии Вы используете для принятия решения о таком способе хранения параметров? Наверно мой вариант №2 надо выкинуть, кривой он какой-то? ВНИМАНИЕ: изменяем постановку задачи (да Репликант это жизнь :) ), - полуфабрикаты и изделия могут иметь несколько рецептур, рецептура может принадлежать только одному изделию или п/ф. Вариант 1) Таблица RP – изделия, сырье и полуфабрикаты (ID_RP (PK), Name_RP, Flag_RP, Par_RP_1, Par_ RP_2, Par_ RP_3) Таблица RcRP – рецептуры (ID_Rс(PK), Name_Rс, ID_RP(FK), Par_ RcRP_1, Par_RcRP_2, Par_ RcRP_3) Таблица Recipe – содержание рецептуры (ID_RP(FK), ID_RP_Comp(FK), ID_Rc_Comp(FK), Weight) PK нет, т.к. для компонента рецептуры «сырье» нет рецептуры - ID_Rc_Comp=NULL Вариант 2) Вариант предложенный Jinn Модифицированный для случая когда полуфабрикаты и изделия могут иметь несколько рецептур 2 Jinn Подскажите пожалуйста новую структуру, на первый (мой поверхностный взгляд) без пустышек рецептур для сырья не обойтись? Пояснения: Что такое рецептура? Это название и некие параметры расчета этой рецептуры. Что такое содержание рецептуры? Это - что и сколько входит в рецептуру. Очень важно не путать «рецептуру» и «содержание рецептуры» Пример «Изделие №1» «Полуфабрикат №1» «Сырье №1» «Сырье №2» «Изделие №1» имеет 2 рецептуры «Рецептура №1» и «Рецептура №2» «Полуфабрикат №1» имеет 2 рецептуры «Рецептура №3» и «Рецептура №4» содержание «Рецептуры №1» «Изделия №1»: «Полуфабрикат №1» изготовленный по «Рецептуре №3» - 50 кг. «Сырье №1» - 50 кг. содержание «Рецептуры №2» «Изделия №1»: «Полуфабрикат №1» изготовленный по «Рецептуре №3» - 40 кг. «Сырья №1» 80 кг. содержание «Рецептуры №3» «Полуфабриката №1»: «Изделие №1» изготовленное по «Рецептуре №1» - 20 кг. «Сырья №2» - 10 кг. содержание «Рецептуры №4» «Полуфабриката №1»: «Сырье №1» - 30 кг. «Сырья №2» - 10 кг. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 18:59 |
|
одно поле -> две таблицы. Что подскажет опыт?
|
|||
---|---|---|---|
#18+
2 Jinn: Именно для поиска по контексту эта архитектура и расчитана. При таком поиске, еще раз заявляю, будут найдены все объекты с похожим или одинаковым наименованием. При ~500000 наименований все работает шустро. А никто и не сомневается, что они будут найдены просто с 1-м лишним джойном по сравнению с моделью, в к-рой нет таблицы "Наименования" :) Да, можно создать и использовать подобие объектов (я с ними не работаю). Эта возможность появилась в последних версиях Oracle Ясно, т.е речь идет о так называемых "объектных" типах данных появившихся в Oracle 8.х, например, списках (list), состоящих из нескольких переменных разных типов ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 19:27 |
|
одно поле -> две таблицы. Что подскажет опыт?
|
|||
---|---|---|---|
#18+
2 Репликант Вам был вопрос: >А где можно познакомится с нормальными структурными подходами (SDLC, SASD и тд) Может Вы SADT имели ввиду? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2003, 16:15 |
|
одно поле -> две таблицы. Что подскажет опыт?
|
|||
---|---|---|---|
#18+
kondi 2 Jinn Подскажите пожалуйста новую структуру, на первый (мой поверхностный взгляд) без пустышек рецептур для сырья не обойтись? Пояснения: Что такое рецептура? Это название и некие параметры расчета этой рецептуры. Что такое содержание рецептуры? Это - что и сколько входит в рецептуру. Очень важно не путать «рецептуру» и «содержание рецептуры» Я не стал приводить пример (желающие сами посмотрят), но пример несколько некорректен. Изделие №1 изготовленное по рецептуре №1 не может входить в полуфабрикат №1 который, в свою очередь, входит в изделие №1. Если это отходы - то они должны учитываться отдельно в разделе сырье (которое не имеет рецептуры). Но выглядеть это будет примерно так: {01,12}Изделия {02,13} Изделие №1 {03,14} Рецептура №1 {04,15} Рецептура №2 {05,16}Полуфабрикаты {06,17} Полуфабрикат №1 {07,18} Рецептура №3 {08,19} Рецептура №4 {09,20}Сырье {10,21} Сырье №1 {11,22} Сырье №2 Здесь приведено дерево уже с именами. В скобках указаны ID дерева и наименования. Таблица параметров будет выглядеть так (ID параметра, ID владельца, ID наименования, Значение). 23,03,18,(50 кг) 24,03,21,(50 кг) 25,04,18,(40 кг) 26,04,21,(80 кг) 27,07,14,(20 кг) 28,07,22,(10 кг) 29,08,21,(30 кг) 30,08,22,(10 кг) Как видно, в качестве владельца параметра указывается положение в дереве, а в качестве наименования параметра положение в таблице наименований, вне зависимости от положения этого наименования в дереве. Разложение в вертикальную таблицу как раз и позволяет изюежать пустых полей. Ну а алгоритм использования параметров у каждого свой. Логика такого хранения, может быть, и не совсем понятна на первый взгляд, но после "привыкания" снимаются многие проблемы и проблемки с использованием справочных данных. 2 Репликант Никаких join'ов не надо, поиск осуществляется одним запросом, примерно таким: select /*+Rule*/ tree_id, owner_id, name_id, (select /*+Rule*/ N.Names from Dict_Name N where N.Name_ID=T.Name_ID) as Names, LEVEL from Dict_Tree T start with Name_ID in (select /*+Rule*/ N.Name_ID from Dict_Name N where N.Names like '%VAL%') connect by prior owner_id=tree_id Этот запрос выведет всю иерархию до искомого слова включительно, в обратном порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2003, 17:09 |
|
одно поле -> две таблицы. Что подскажет опыт?
|
|||
---|---|---|---|
#18+
2 kondi: Вам был вопрос: >А где можно познакомится с нормальными структурными подходами (SDLC, SASD и тд) Может Вы SADT имели ввиду? Нет, я имел в виду не SADT (методологию структурного анализа/проектирования вообще процессных систем, выраженную в методах/нотациях IDEF0,1,2,3 и тд), а именно методологии анализа/проектирования софтовых систем : SASD/SAD (Structured (system) analysis and design в методах/нотацияъ DFD,ERD,JSC, разработанные Йордоном-ДеМарко-Джексоном) и SDLC (Strucutured development life cycle, вообще чистый процесс как в ISO12207, к-рый может использовать любые методы/нотации для получения требований или построения моделей) 2 Jinn: Код: plaintext 1. 2. 3. 4. 5. 6.
все равно если требуется не джойн, то требуется 1-й подзапрос для получения имен и 2-й - для объединения. Как я понимаю необходимость выноса наименований это "недостаток" древовидной структуры: Таким образом одно наименование может входить в разные ветви дерева, точнее разные ветви дерева могут ссылаться на одно наименование. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2003, 23:16 |
|
|
start [/forum/topic.php?fid=32&msg=32153897&tid=1546963]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 238ms |
total: | 497ms |
0 / 0 |