|
|
|
Несколько Справочников.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Примечание: До сих пор имел дело только с БД для торговли, где всегда удавалось создать общий справочник товаров, помещая все характеристики просто в текстовое поле, т.к. это всего лишь Описание. Пытаюсь осмыслить, какая структура таблиц мне требуется в следующем случае (кажется, проще будет сразу на предметной области): Имею производство (кухонные столешницы), которое потребовало хранить информацию о следующих объектах: 1. Материалы основы (Фанера, ДВП, ...) 2. Материалы покрытия (Пластик, искусственный камень, ...) 3. Расходные материалы (шлиф., клей, ...) 4. .... Атрибуты (поля) у каждого материала свои, и они реально используются при расчетах. На каждый такой класс материалов создано по одной таблице (группе таблиц). Теперь необходимо реализовать хранение всех этих материалов (в смысле БД), т.е. Количество, номер партии, ..., и дальнейший Приход-Расход. Не могу понять, какой структуры и с какими ссылочными связями должна быть таблица Склада (а так же Прихода-Расхода). Я обеспечил уникальный код метериала во всей БД, используя один и тот же генератор. Примечание: тут еще вклинивается такой момент: некоторые материалы могут выступать в нескольких "ипостасях": например, Материал основы может использоваться и как Материал покрытия (столешницы можно изготовить просто из ЛДСП, ничем не покрывая). 1. Если делать отдельные таблицы Склада для каждого типа товара (под каждый справочник), то при появлении нового справочника придется "каскадом" создать и новую таблицу Склада (а так же Прихода и Расхода), попутно изменяя и все UNION-запросы на вывод "полного" Склада (и "полных" накладных). 2. Если делать одну таблицу Склада, помня, что Коды материалов "насквозь" уникальные, то от декларативной ссылочной целостности придется отказаться (?), т.к. она возможна только на одну таблицу. Чем мне еще не нравится такой вариант, так это тем, что семантика поля Количество в этом случае будет зависеть от материала: например, Фанера измеряется в листах, жидкий камень - в килограммах, шлиф-круги - в штуках. Чую, что тут могут быть грабли... Особенно в связи с тем, что не мешало бы "прикрутить" к программе и Раскрой, который будет переводить "листы" в "штуки", где у каждого - своя геометрия. Тут у меня в голове пока совсем темно. 3. Пришла в голову совсем дикая мысль: создать в таблице Склада (Прихода, Расхода) несколько полей Кодов материала (по числу Справочников). Сделал над собой усилие, и не отбросил ее сразу. Что в этом случае может получиться ? Будет все хорошо с декларативной ссылочной целостностью. По наличию (или отсутствию) Кода материала в конкретном поле Кода в таблице Склада можно судить и принадлежности Материала к тому или иному виду Справочника - тут попутно решается вопрос об "ипостасях", но только в данном случае, т.е разрезе таблицы Склада, и это не будет "глобальным справочником ипостасей". Придется менять структуру таблицы Склада (Прихода, Расхода) при добавлении нового Справочника. Кажется, этот вариант соответствует набору таблиц для каждого Справочника, но слитых в одну. И здесь также возникает неопределенность со значением поля Количество. Вообщем, никакой из этих вариантов мне не нравится. Сдается мне, что для решения подобных проблем существует правильный и научный способ, но мне он пока недоступен. Прошу совета. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 08:20 |
|
||
|
Несколько Справочников.
|
|||
|---|---|---|---|
|
#18+
Один справочник материалов с общими полями. И справочники спецификаторы для "основы, покрытия и т.д.". В спецификаторах внешние ключи на общий справочник. В основном, возможно, поля-признаки вхождения в ту или другую спецификацию. С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 09:25 |
|
||
|
Несколько Справочников.
|
|||
|---|---|---|---|
|
#18+
NafОдин справочник материалов с общими полями. И справочники спецификаторы... В спецификаторах внешние ключи на общий справочник... Спасибо за ответ. Правильно ли я понял, что Общий справочник и Спецификаторы связаны один к одному ? Пошел дальше думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 12:08 |
|
||
|
Несколько Справочников.
|
|||
|---|---|---|---|
|
#18+
да, один-к-одному С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 12:11 |
|
||
|
Несколько Справочников.
|
|||
|---|---|---|---|
|
#18+
Nafда, один-к-одномуNaf Ссылочная целостность все равно на пользовательских триггерах получается, только вид в профиль: заводим материал в Общем справочнике - нужно вставить его в Спецификатор (или наоборот). Лишь после этого можно создать декларативную ссылочную целостность из операционных таблиц на Общий справочник. Хитрый господин Дейт, несмотря на толщину его книги, ни словом не обмолвился о подобной ситуации. А ситуация вовсе не экзотическая, однако. Или же есть "более другая" структура БД ? Или я "ужасно неправ" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 13:57 |
|
||
|
Несколько Справочников.
|
|||
|---|---|---|---|
|
#18+
MurtazaИли же есть "более другая" структура БД ? Есть и очень давно: 1. Изделия (готовые, полуфабрикаты, материалы, комплектующие и т.д.) 2. Класификатор(ы) изделий - иерархический(е) 3. Состав изделий - что куда входит и в каком количестве 4. Операции с изделиями 5. ............... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 14:06 |
|
||
|
Несколько Справочников.
|
|||
|---|---|---|---|
|
#18+
_мод1. Изделия (готовые, полуфабрикаты, материалы, комплектующие и т.д.) 2. Класификатор(ы) изделий - иерархический(е) 3. Состав изделий - что куда входит и в каком количестве 4. Операции с изделиями 5. ............... Разьве Naf не о том же написал ? Не могли бы Вы пояснить по связям в таблицах ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 14:16 |
|
||
|
Несколько Справочников.
|
|||
|---|---|---|---|
|
#18+
MurtazaНе могли бы Вы пояснить по связям в таблицах ? 1. Изделия (готовые, полуфабрикаты, материалы, комплектующие и т.д.) 2. Класификатор(ы) изделий - иерархический(е) 3. Состав изделий - что куда входит и в каком количестве 4. Операции с изделиями 5. ...............[/quot] 1:2 как n:1 3:1 как 1:1 себя и n:1 на родителя 4:1 как n:1 2:2 как n:1 на родителя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 17:58 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=100&tid=1543737]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 394ms |

| 0 / 0 |
