Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
Необходимо сконструировать базу деталей. Разновидностей деталей около 50, т.е. болты, трафареты и т.д. Разумеется, они имеют разное количество характеристик. Хотелось-бы услышать Ваше мнение по поводу того, что является более рацональным решением - создать 50 таблиц (по таблице на каждый вид), или создать одну таблицу, запихать в нее все возможные характеристики, а в неиспользуемых полях для конкретного типа использовать null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2004, 11:26 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
StalkerSчто является более рацональным решением - создать 50 таблиц (по таблице на каждый вид) Если хар-ки схожие, я бы так и сделал, если нет, то 1 таблица шаблонов, а из нее уже берем данные для изготовления в любой момент таблицы для каждой детали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2004, 02:56 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
StalkerSНеобходимо сконструировать базу деталей. Разновидностей деталей около 50, т.е. болты, трафареты и т.д. Разумеется, они имеют разное количество характеристик. Хотелось-бы услышать Ваше мнение по поводу того, что является более рацональным решением - создать 50 таблиц (по таблице на каждый вид), или создать одну таблицу, запихать в нее все возможные характеристики, а в неиспользуемых полях для конкретного типа использовать null. Я бы сделал ЧЕТЫРЕ таблицы: 1. Детали (болты, трафареты и т.д.) 2. Характеристики (длина, ширина, толщина и т.д.) 3. Характеристики деталей 4. Единицы измерения Структура таблиц: 1. Детали ; поля PartID, NamePart 2. Единицы измерения ; поля IzmID, NameIzm 3. Характеристики ; поля CharID, IzmID, NameChar 4. Характеристики деталей ; поля PartID, CharID, Value При этом, возникает следующая схема данных (стрелочки указывают соответствующие связи (Relations)): Детали -> Характеристики деталей <- Характеристики <- Единицы измерения В чем достоинства данной схемы: - Она расширяема; - Разные детали могут иметь разное количество характеристик - Не надо хранить значение Null В чем недостатки данной схемы: - Для просмотра/ввода характеристик деталей надо написать соответствующий Select и поместить его во View... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2004, 06:57 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
авторДетали->Характеристики деталей<-Характеристики <-Единицы измерения Это самый нормальный (в полном смысле этого слова) способ хранения информации. Будут небольшие сложности с реализацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 14:55 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
to Станислав C. Код: plaintext 1. Value - какой тип предполагается varchar, float, sql_variant? да, и надо понимать что хранение характеристик не самоцель, вероятно потом нужно будет и расчёты вести расхот, отход, незавершёнка там, да и в разных единицах, кому надо будет в штуках кому в килограммах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 07:07 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
Sergey_SKto Станислав C. Код: plaintext 1. Value - какой тип предполагается varchar, float, sql_variant?... Если Вы заметили, то я не прописывал типы полей. Оставил это на откуп разработчику. Хотя, насколько я понял из первого сообщения топика, здесь подошел бы тип float... Sergey_SKto Станислав C. ... надо понимать что хранение характеристик не самоцель, вероятно потом нужно будет и расчёты вести расхот, отход, незавершёнка там, да и в разных единицах, кому надо будет в штуках кому в килограммах... Я бы согласился с Вами, но стояла задача именно сконструировать базу деталей... Приведите мне пример, когда моя схема не сработает... Кроме того,как я уже говорил, предложенная мной модель является расширяемой. Если необходимы пересчеты между единицами измерения, то, наверное, можно ввести коэффициент пересчета, например в виде еще одной таблицы: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 07:40 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
Да схема замечательная... еслиб единственной задачей было найти и распечатать характеристики. Но на основе этих характеристик потом нужно будет вести расчёты, Подробностей расчёта - престчёта ни кчему, приведённые мной примеры расчётных задач это только чтоб показать достаточную серьёзность необходимых расчётов. Вы не указали типы полей, я по этому и задал вопрос т.к. он принципиально важен и без его решения данная схема не жизнеспособна. Вот вы предполагаете тип flоat, а как быть с: 1. постоянное вываливание на клиенте в экспоненциальный вид, 2. точность вычислений скажем так, оставляет желать лучшего(это ведь приближённый тип) ? просто может я типом float пользоваться не умею и поэтому везде где нужны рачсёты пользую decimal. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 09:12 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
Sergey_SKДа схема замечательная... если б единственной задачей было найти и распечатать характеристики. Но на основе этих характеристик потом нужно будет вести расчёты, Подробностей расчёта - престчёта ни кчему, приведённые мной примеры расчётных задач это только чтоб показать достаточную серьёзность необходимых расчётов. Был задан КОНКРЕТНЫЙ вопрос: автор Необходимо сконструировать базу деталей . Разновидностей деталей около 50, т.е. болты, трафареты и т.д. Разумеется, они имеют разное количество характеристик. Хотелось-бы услышать Ваше мнение по поводу того, что является более рацональным решением - создать 50 таблиц (по таблице на каждый вид), или создать одну таблицу, запихать в нее все возможные характеристики, а в неиспользуемых полях для конкретного типа использовать null. Не расширяйте трактовку вопроса. А то ведь так можно расширить его и до CASE-системы... Sergey_SK Вы не указали типы полей, я по этому и задал вопрос т.к. он принципиально важен и без его решения данная схема не жизнеспособна. Я не указывал типы полей специально, чтобы указать лишь ИДЕЮ реализации, а не конкретную реализацию. Разработчик, у которого есть голова, возмет ИДЕЮ и, немного модифицировав, применит ее в своей конкретной ситуации, а не будет ждать готового решения... Sergey_SK Вот вы предполагаете тип flоat, а как быть с: 1. постоянное вываливание на клиенте в экспоненциальный вид, 2. точность вычислений скажем так, оставляет желать лучшего(это ведь приближённый тип) ? просто может я типом float пользоваться не умею и поэтому везде где нужны рачсёты пользую decimal. Это опять же идет речь о КОНКРЕТНОЙ РЕАЛИЗАЦИИ. (мне почему-то кажется, что на SQL Server'e). Соглашусь, МОЖНО использовать тип decimal. Хотя, также НЕ ЗАПРЕЩЕНО использовать и типы char, varchar и др. и проводить преобразование по мере надобности.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 09:43 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
автор Это опять же идет речь о КОНКРЕТНОЙ РЕАЛИЗАЦИИ. (мне почему-то кажется, что на SQL Server'e). шаман :) автор Это опять же идет речь о КОНКРЕТНОЙ РЕАЛИЗАЦИИ. (мне почему-то кажется, что на SQL Server'e). Соглашусь, МОЖНО использовать тип decimal. Хотя, также НЕ ЗАПРЕЩЕНО использовать и типы char, varchar и др. и проводить преобразование по мере надобности.... именно о конкретно ВАШЕЙ реализации и идёт речь, схема так красиво описана что я смел предположить что она была вами использована на практике. автор varchar и др. и проводить преобразование по мере надобности.... то есть практически на каждом шагу. Данная схема давно известна, только вот стоит ли с ней заморачиваться в серьёзных проектах, просто часто выясняется что данная схема была применена для хранения настроек пользователей или ещё чего не серьёзного, а вот чтоб кто-то сказал что он её использовал как ядро проекта и не пожалел об этом я ещё не слышал, а былоб интересно (действительно интересно, без всякой иронии). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 11:24 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
Sergey_SK именно о конкретно ВАШЕЙ реализации и идёт речь, схема так красиво описана что я смел предположить что она была вами использована на практике. Конкретно ЭТА схема не была реализована на практике. Но было реализовано несколько подобных при адаптации КИС "Эталон" (ДОС-версия) для нужд нашего предприятия. А конкретно при описании задачи "Производство"... Sergey_SK Данная схема давно известна, только вот стоит ли с ней заморачиваться в серьёзных проектах... а вот чтоб кто-то сказал что он её использовал как ядро проекта и не пожалел об этом я ещё не слышал... Долой реляционную модель из практики! Даешь денормализацию! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 11:51 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
Станислав C.В чем недостатки данной схемы: - Для просмотра/ввода характеристик деталей надо написать соответствующий Select и поместить его во View... Вы имеете в виду запрос, который будет возвращать НД что-то типа: Код: plaintext 1. 2. интересно, а как будет выглядеть такой запрос, если мы заранее не знаем какие характеристики и сколько их у конкретной детали? для каждого вида детали все равно нужен свой hard-coded запрос. или писать процедуру, которая будет формировать текст запроса, а потом выполнять его (кстати, на этом этапе можно и приведение типов сделать к тем, какие нужны). тогда получим НД, но только для чтения. как делать вставку/изменение? действительно, вопрос извлечения данных из такой структуры стал лично для меня проблемой. интересно, кто как из такой ситуации выходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 13:12 |
|
||
|
организация структуры базы
|
|||
|---|---|---|---|
|
#18+
Это я, автор топика :) >Это опять же идет речь о КОНКРЕТНОЙ РЕАЛИЗАЦИИ. (мне почему-то кажется, что на SQL Server'e). именно на нем, родимом Реализация данной структуры пока в подвешенном состоянии, но я уже реализовал практически идеинтичную структуру, как раз по способу, о котором говорит Станислав_С. Задача следующая : необходимо хранить таблицу номенклатурных номеров. Она представляет собой таблицу с 18 полями, причем в каждом конкретном номере используется лишь 5-6 полей. Если использовать лишь одну таблицу, то фактически, мы будем хранить одни null. Причем, по сравнению с таблицей деталей (из топика), ситуация осложняется тем, что в части полей храняться реальные значения (например, размер сортамента = 500 мм.), а в остальных полях - только ссылки на значения из других таблиц (к примеру - ГОСТ материала, все используемые ГОСТы собраны в отдельной таблице, так как иначе придется дублировать строку типа ГОСТ 12276-87 немеренное количество раз). В итоге, сама таблица Номенклатурных номеров выглядит так : - Id номера - Номер характеристики - Значение Характеристики (18 шт.) собраны в другой таблице, ну и соответственно, еще 12 таблиц, хранящих данные (типа ГОСТ'ов). Пришлось написать хитрую ХП, которая по номеру, возвращает текст Номенклатурного Номера. Причем, для каждой конкретной характеристики, ей приходиться определять, реальное-ли значение это, или ссылка на другую таблицу. В принципе, получилось замудрено (13 таблиц вместо одной), но это явно лучше, чем одна здоровая неповоротливая таблица. Тем более, что microsoft рекомендует держаться подальше от большого числа null-значений в таблицах, а в данном варианте реализации null отсутствуют в принципе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 14:16 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32721019&tid=1546208]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
83ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 434ms |

| 0 / 0 |
