powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как организовать DataTables
3 сообщений из 3, страница 1 из 1
Как организовать DataTables
    #38648121
leon777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый вечер! Столкнулся со следующей проблемой.
Итак, мы имеем таблицы:

CLIENTS (клиенты)
Id
Last_name
First_name
Phone
------------------------------------------------------------------
ORDER (заказы)
Id
Date
Client_id (FK -> CLIENTS.Id)
------------------------------------------------------------------
GOODS (приобретенные товары)
Id
PriceId (FK -> PRICE.Id)
Code
OrderId (FK -> ORDER.Id)
------------------------------------------------------------------
PRICE (прайс-лист товаров)
Id
Name
Cost
------------------------------------------------------------------

Клиенты делают заказы. За один заказ можно приобрести несколько товаров.

На основной форме стоит компонент, отображающий все заказы (таблица ORDER). Но помимо информации непосредственно из таблицы ORDER мне для каждого заказа нужно отобразить ФИО клиента, который его выполнил, список товаров (одним полем) и.т.д. Т.е. нужны данные других таблиц.

Для достижения этой цели я создал ORDER_VIEW – вью которая объединяет данные из таблиц ORDER, CLIENT, GOODS, PRICE. На клиенте вместо ORDERDataTable я создаю ORDER_VIEWDataTable которая содержит как поля из таблицы ORDER так поля из других таблиц.

Все отлично, НО когда я перехожу с основной формы (на которой отображаются все заказы) на форму ‘Клиенты’ и там, например, меняю телефон клиента мне помимо изменения в таблице CLIENTDataTable нужно обновить данные в ORDER_VIEWDataTable (ведь в этой вью прописаны так-же и колонки с данными клиента).

Обновлять ORDER_VIEW полностью удобно, но долго - она большая.

Можно уйти от ORDER_VIEW и работать с нормализованными DataTable’ми. Но в таком случае доп. информацию клиентов нужно выбирать динамически из нужной таблицы – тоже время.

Кто-либо сталкивался с похожими проблемами? Что посоветуете?
...
Рейтинг: 0 / 0
Как организовать DataTables
    #38648501
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leon777,

Это не та проблема, решить которую можно вызвав некую волшебную функцию...

Если вы действительно хотите ее решить - то надо отказываться от прямого отображения базы данных.
Если изменения произошли там, то нет способа их получить, кроме как перечитать из базы.

Поэтому, можно построить в памяти обьекты, которые в памяти существуют в единственном экземпляре, отображаются при помощи байндинга на разные View, и при изменении полей-свойств этих обьектов они уведомляют и привязанные View, и слой доступа к базе, чтобы он сохранил изменения.

Это единственный путь решить подобные требования.

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

Но и этот путь не является "формулой абсолютного топлива" - ведь с базой будут работать с разных компьютеров....
:-)
...
Рейтинг: 0 / 0
Как организовать DataTables
    #38648650
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leon777Обновлять ORDER_VIEW полностью удобно, но долго - она большая.

Можно уйти от ORDER_VIEW и работать с нормализованными DataTable’ми. Но в таком случае доп. информацию клиентов нужно выбирать динамически из нужной таблицы – тоже время.

Кто-либо сталкивался с похожими проблемами? Что посоветуете?

1.для этого используются DataSet ы
2.ещё лучше отказаться от использования DataTable в пользу ORMа
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как организовать DataTables
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]