Имя поля, как параметр процедуры

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Bocman
Сообщения: 15
Зарегистрирован: 17 авг 2006, 10:38

Сообщение Bocman » 21 авг 2006, 10:51

Перечень приборов вынесен в другую таблицу
связана она с другими таблицами (наименование, местонахождение и тд) как многие к одному
виды работ (К, т...) берется при помощи триггера из другой таблицы
ну а план жестко привязан к каждому прибору, имеет ли смысл делить таблицу на две, если связь будет один к одному, да и кроме плана, дат выполнения и кодов для связи с другими таблицами как многие к одному там почти ничего нет. Примерно это выглядит следующем образом: Ремонтные организации->Наименование прибора->Тип прибора->модель прибора->экземпляр прибора(здесь план);
Так же еще несколько веток - местонахождение, ед. измерения и тд

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 21 авг 2006, 11:02

Всё ещё пытаешься мыслить кросс-таблицей.
Месяца должны быть не полями, а строками. Ещё и потому, что у тебя сейчас фиксировано 2 года, а ну будет 25 месяцев? И не говори "так будет всегда", это слишком долго.

Bocman
Сообщения: 15
Зарегистрирован: 17 авг 2006, 10:38

Сообщение Bocman » 21 авг 2006, 13:45

А как в строке указать все месяца, если у некоторых приборов есть различная работа в каждом месяце?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 21 авг 2006, 14:56

Например,

Код: Выделить всё

CREATE TABLE WORKS (
  PRIBOR_ID   INTEGER,
  MONTH_NUM   SMALLINT,
  WORKTYPE_ID INTEGER
);
Не важно, сколько там работ и вообще есть ли они по конкретному прибору.

Bocman
Сообщения: 15
Зарегистрирован: 17 авг 2006, 10:38

Сообщение Bocman » 21 авг 2006, 15:33

Большое спасибо за подсказку, я до этого не додумался, когда проектировал БД. Теперь придется все переделывать :cry:
Раз не умею думать головой придется работать руками. Осталось придумать как пользователю все это отобразить в горизонтальном положении, но думаю разберусь.

Ответить