Форум: "Базы";
Текущий архив: 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.036 c