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

Вниз

У каждой фирмы свой прайс   Найти похожие ветки 

 
able ©   (2004-11-24 05:46) [0]

Как это лучше реализовать? Чтобы когда фирма выделена (например, в DBGrid) появился прайс (например, в другом DBGrid), выделил другую фирму, другой прайс..


 
YurikGL ©   (2004-11-24 07:14) [1]

Напимер так

procedure TFormMan.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if DSMan.State=dsBrowse then begin
 ИзменяемыйDataset.Close;
 ИзменяемыйDataset.CommandText:="Select ..."

 ИзменяемыйDataset.Open;

end;


 
YurikGL ©   (2004-11-24 07:15) [2]

DataSource1 связан со списком фирм а ИзменяемыйDataset - набор данных с прайсом.


 
sniknik ©   (2004-11-24 07:28) [3]

для примера
D:\Program Files\Borland\Delphi7\Demos\Db\Filter


 
msguns ©   (2004-11-24 10:32) [4]

Использовать 2 таблицы: Основная-перечень фирм + Дочерняя-прайсы
Причем в прайсах есть поле идентификатора-связки с Основной. Дальше - просто:
 1. Использовать два запроса, связанных отношением Master-Detail
 2. По событию AfterScroll датасета с осн.таблицей делать переоткрытие дочерней, где в запросе предварительно менять значение параметра MasterID, присваивая ему ID текущей записи осн.таблицы.


 
able ©   (2004-11-24 16:02) [5]

thanks


 
able ©   (2004-11-24 20:03) [6]

Всё это будет в одной таблице. А в каждом прайсе докучи позиций, фирм ~2000. Нормально, потянет? :)


 
msguns ©   (2004-11-25 10:18) [7]

Т.е. прайсы и фирмы в одной таблице ?


 
asp ©   (2004-11-25 11:44) [8]

Примерно так:
FIRM (ID INTEGER, NAME VARCHAR(64))
GOODS (ID INTEGER NAME VARCHAR(64))
GOODS_PRICE (FIRM INTEGER, GOODS INTEGER, PRICE DOUBLE)


 
able ©   (2004-11-25 13:37) [9]

msguns ©   (25.11.04 10:18) [7]
Нет. В предложенных вариантах прайсы всех фирм в одной таблице. Это нормально?


 
msguns ©   (2004-11-25 14:14) [10]

>able ©   (25.11.04 13:37) [9]
>В предложенных вариантах прайсы всех фирм в одной таблице. Это нормально?

Да. Вообще примерная схема приведена у asp © (25.11.04 11:44) [8]
Хотя я делаю иначе. Исходя из того, что первичен все же товар, а не прайс.

GOODS
 ID
 NAME
 MEAGURE
 PACKAGE
 NDS
 TERMKEEP
 ...

FIRM
 ID
 NAME
 PHONE
 ...

PRICES
 ID
 NAME

PRICES_ST
 ID
 PID -> PRICES
 GID -> GOODS
 FID -> FIRM
 PRICE

Такая схема имеет след.достоинства:
- сколько угодно прайсов по одной фирме.
- наличие любого кол-ва колонок прайса (PID)
- отсутсвие любого товара в любом прайсе (колонке прайса)


 
able ©   (2004-11-25 15:40) [11]

А что за таблица "GOODS"?


 
YurikGL ©   (2004-11-25 16:22) [12]


> able ©   (25.11.04 15:40) [11]

товары, если я что-то понимаю в английском :-)



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

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

Наверх





Память: 0.47 MB
Время: 0.045 c
6-1097653841
Maxwell
2004-10-13 11:50
2004.12.26
Узнать IP клиентов, подключаемых к idTCPServer


1-1103080989
Bobby Digital
2004-12-15 06:23
2004.12.26
MouseMove


4-1100025299
AlphA
2004-11-09 21:34
2004.12.26
Скрин-шот не снимается, когда прогрмму вызывает Apache


1-1102487167
dimqua
2004-12-08 09:26
2004.12.26
DBCombobox


14-1102433005
Сергей Г
2004-12-07 18:23
2004.12.26
Куда мы катимся





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский