Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];

Вниз

Помогите правльно организовать таблицы   Найти похожие ветки 

 
elena_pp   (2006-06-02 12:22) [0]

Пишу программу годовая заявка:
Есть таблица заказов KOD,..., M1,M2...M12, где M1-M12 количество заказанного.
Нужна таблица цен на каждый месяц (CENA):
Организовала так KOD, CENA, DAT.
Только цена поставленная в 1-м месяце действует, пока не появиться новая цена (предположим в 5-м месяце).
Теперь, что бы SQL отобрал цену в 3-м месце делаю так:
select t.KOD,...,M1,M2...M12
(select c.CENA from Z_HIS_CEN c where c.DAT=(select max(DAT) from Z_HIS_CEN where DAT<"01.04.2005" and kod=c.kod ) and v.kod=c.kod) as C2,... C12
from NSI_TOVAR t
Чувствую, что-то намудрила, SQL свое отрабатывает и получает то, что нужно, но срабатывает около 10 минут. Может можно как нибудь по проще...:)


 
Sergey13 ©   (2006-06-02 12:32) [1]

>Есть таблица заказов KOD....
KOD чего? Заказа? Товара?
Что будет если за месяц цена менялась не 1 раз? Да даже и один - какю брать - ревоначальную или конечную? Может проще (и правильнее?) посчитать среднюю цену товара и использовать ее?


 
Sergey13 ©   (2006-06-02 12:33) [2]

Блин! Опечаток то сколько. Сори. 8-)


 
elena_pp   (2006-06-02 13:00) [3]

KOD товара


 
MsGuns ©   (2006-06-02 13:10) [4]

Прежде чем создавать таблицы, надо
1. Четко описать задачу
2. Определить входную и выходную информацию (документы, отчеты, картотеки, прайсы и т.д.)
3. Описать бъекты: "поставщики", "покупатели", "товар", "склад", "приходный документ", "расходный документ" и т.д.
4. Увязать все объекты в одну модель.
5. Выделить справочники (первая ступень нормализации)
6. Определить связи один-ко многим (например, для документов, прайсов, картотек..) (вторая ступень нормализации)
7. Приступать к переносу модели "в металл", т.е. в БД

Тогда не будут появляться "шедевры" типа сабжевого


 
elena_pp   (2006-06-02 14:37) [5]

<<MsGuns
К разработке приступили так
1. Техническое задание на программу, в которой указаны
>>1. Четко описать задачу
>>2. Определить входную и выходную информацию (документы, отчеты, >>картотеки, прайсы и т.д.)
>>3. Описать >>бъекты: "поставщики", "покупатели", "товар", "склад", "приходный >>документ", "расходный документ" и т.д.
>>4. Увязать все объекты в одну модель.

5. Справочники следующие: Справочник товаров, таблица заказа, справочник истории цен.
6-7 . Связи один ко многим KOD в справочнике товаров и KOD таблицы CENA
Связи один ко многим KOD в справочнике KOD и KOD таблица заказов
Остальные связи рассказывать не буду - связано около 15 таблиц и справочников, в результате действуют уже 12 программ.
Теперь задача следующая - увязать историю цен с заказом :)


 
Sergey13 ©   (2006-06-02 14:53) [6]

2[5] elena_pp   (02.06.06 14:37)
Ты бы лучше задачу описала попдробнее.
>Пишу программу годовая заявка:
Заявка на следующий год? Или это статистика за прошлый/текущий? Хотя какая статистика в заявке. Какая разница для заявки на будущий декабрь, какая цена была в прошлом декабре? В общем, смысл работы мне лично пока не понятен.


 
MsGuns ©   (2006-06-02 14:59) [7]

>5. Справочники следующие:
>Справочник товаров

 В справочнике не должно быть цен, а только характеристики товара, независимые от приходных документов (наименование, брэндмарк, ед.изм-я, вид, группа товаров, реквизиты внутреннего учета)

>таблица заказа

"Заказы" - это самостоятельный объекты, а не справочник. Поэтому надо их выделить в самостоятельные таблицы с привязкой к покупателям. Так же, как и "Заявки" - для поставщиков

>справочник истории цен.

Не нужен вообще. "Цена" не есть объект, а есть лишь св-во других объектов: фактур приходов и расходов, складской карточки товара при учете по товару, прайсов

>Остальные связи рассказывать не буду - связано около 15 таблиц и справочников, в результате действуют уже 12 программ.

Напрасно. Прежде чем лепить таблицы надо все же выстроить модель. Которой пока не видать.

>Теперь задача следующая - увязать историю цен с заказом :)

Фантомная задача, "вылезшая" из неправильно построенной модели и неясно предсавляемыми задачами проекта.


 
MsGuns ©   (2006-06-02 15:07) [8]

Для нормального складского учета должны быть определены объекты:
"Контрагент"
"Группа контрагентов" (дерево)
"Товар"
"Группа товара" (дерево)
"Карточка" (текущий остаток, ср/взв цена учетная при учете по товару)
"Приход от поставщика" (заголовок+фактура+проплаты)
"Накладные" (отгрузка, внутр.перемещение, списание, возврат от покупателя и т.д.) (заголовок+фактура+проплаты)
"Склад" - для многоскладского хозяйства
"Картотека" - "второй этаж" "Склада", состоящая из "карточек"
"Прайс-лист" (несколько уровней в зависимости от связок с прайсами поставщиков и прайсами покупятелям)
"Заявка" - для планирования и отслеживания поставок от оптовых поставщиков, с которыми есть "долгоиграющие" договора
"Заказ" - для планирования и отслеживания отгрузок покупателям, с которыми есть "долгоиграющие" договора

Если есть розница, то надо еще кое-чего ;)))


 
Курдль ©   (2006-06-02 16:04) [9]


> MsGuns ©   (02.06.06 13:10) [4]


Это уже не модно, т.к. противоречит RUP (UP).


 
Mamed   (2006-06-05 12:38) [10]

Kod tovara,chena ,nacahlanay data,konechnayadata


 
Ega23 ©   (2006-06-05 12:50) [11]

1. Таблица товаров (может быть несколько нормализованных или иерархических таблиц). По крацней мере, каждый товар характеризуется уникальным кодом.
1.1. Возможно, в конечной таблице товаров хранится ТЕКУЩАЯ цена на товар (у меня это просто упрощало многие выборки, но по хорошему - надо смотреть и прикидывать).

2. Таблица заказов. Фактически - уникальное число (код заказа), дата-время оформления заказа, дата-время исполнения заказа (если надо). Возможно - общая сумма заказа (для упрощения некоторых выборок).
2.1. Детали заказа. Уникальный код, вторичный ключ на 2.Код_Заказа, вторичный ключ на код товара, количество товара.

3. Таблица "История изменения цены товара". Код товара, дата изменения цены, цена "ДО", цена "ПОСЛЕ".

ИМХО, так.


 
elena_pp   (2006-06-09 17:55) [12]

Спасибо Ega23 - воплотила пункт 3 (Таблица "История изменения цены товара". Код товара, дата изменения цены, цена "ДО", цена "ПОСЛЕ"). Все работает!!!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.044 c
15-1152709539
oldman
2006-07-12 17:05
2006.08.13
Ультиматум истек - Microsoft оштрафован


1-1151778976
leonidus
2006-07-01 22:36
2006.08.13
Глюки при использовании строк Widestring в операторе IF


11-1131116067
AMB
2005-11-04 17:54
2006.08.13
Неработает запрос на обновление c параметрами в KOLIB


2-1153747099
Провинциал
2006-07-24 17:18
2006.08.13
"ЗЮКИ" в меню


1-1151329908
Alexey V.
2006-06-26 17:51
2006.08.13
Взаимное влияние D5 и D7





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский