|
|
|
Пара вопросов по доменной модели и коллекциям
|
|||
|---|---|---|---|
|
#18+
Добрый день! При изучении доменной модели возникли два вопроса, на которые не могу найти четкого ответа: 1) как организовываются многочисленные выборки с переменным составом полей? Для каждого набора полей создаётся свой класс и свой набор объектов? Более того, что делать, если поля выборки настраиваются пользователями? 2) как организовано редактирование ссылочных полей (в терминах Delphi - Lookup)? Объясню на своём примере: есть справочник ж/д станций, есть справочник железных дорог. Каждая станция принадлежит только одной дороге, в БД есть foreign key между таблицами Station и Road. Когда пользователь пополняет справочник станций, то откуда он возмёт значение наименование дороги? Как я понимаю нужно заранее подготовить коллекцию дорог? Не много ли в таком случае коллекций придётся заполнять заранее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2008, 09:17 |
|
||
|
Пара вопросов по доменной модели и коллекциям
|
|||
|---|---|---|---|
|
#18+
Antoshka 1) как организовываются многочисленные выборки с переменным составом полей? Для каждого набора полей создаётся свой класс и свой набор объектов? Более того, что делать, если поля выборки настраиваются пользователями? А эти элементы выборки будут обладать собственным уникальным поведением? Или операции над ними будут производиться методами других классов? Т.е. есть у вас к примеру класс "Железная дорога", у него есть методы "Сохранить", "Удалить", "Получить список станций" и т.п. И есть выборка "Железные дороги с наименованием страны". Я так понимаю, что элементы второй выборки собственным поведением обладать не будут, они вам нужны только чтобы пользователю показать, к примеру. Т.ч. вводить специальный класс для элементов такой выборки имхо смысла нет, пользуйтесь для работы с ними классами наподобие Recordset в ADO. А вообще в C# 3.0 + LINQ анонимные классы очень красиво с этой задачей справляются, на мой взгляд. Antoshka 2) как организовано редактирование ссылочных полей (в терминах Delphi - Lookup)? Объясню на своём примере: есть справочник ж/д станций, есть справочник железных дорог. Каждая станция принадлежит только одной дороге, в БД есть foreign key между таблицами Station и Road. Когда пользователь пополняет справочник станций, то откуда он возмёт значение наименование дороги? Как я понимаю нужно заранее подготовить коллекцию дорог? Не много ли в таком случае коллекций придётся заполнять заранее? В каком смысле заранее? Есть у вас на форме поле Road, рядом с ним есть кнопка, пользователь переходит на это поле и нажимает на кнопку, или бьет F4 (к примеру) на клавиатуре, проваливается в форму справочника, выбирает там дорогу, жмет Ок, возвращается назад. Список дорог получаем из БД в момент открытия формы справочника. Как-то так, мне кажется. Или я не понял вопроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2008, 11:11 |
|
||
|
Пара вопросов по доменной модели и коллекциям
|
|||
|---|---|---|---|
|
#18+
Antoshka 2) как организовано редактирование ссылочных полей (в терминах Delphi - Lookup)? Объясню на своём примере: есть справочник ж/д станций , есть справочник железных дорог . Каждая станция принадлежит только одной дороге, в БД есть foreign key между таблицами Station и Road. Когда пользователь пополняет справочник станций, то откуда он возмёт значение наименование дороги? Как я понимаю нужно заранее подготовить коллекцию дорог? Не много ли в таком случае коллекций придётся заполнять заранее? коллекция дорог берется из обыкновенного запросак таблице справочник железных дорог. или я тоже ничего не понял. думаю когда автор еще освоит теорию РБД вопрос будет снят сам собой )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2008, 12:40 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=100&tid=1543747]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 321ms |

| 0 / 0 |
