Реклама:

public string Sort {get; set;}

Например, задать для таблицы Kaf сортировку по столбцу Sostav: DataViewManager DVM;

DVM.DataViewSettings["Kaf"].Sort = "SOSTAV";

Свойство Table позволяет определить, для какой таблицы задаются настройки фильтрации и(или) сортировки:

public DataTable Table {get;}

Свойство DataViewManager возвращает ссылку на тот менеджер просмотров, к коллекции DataViewSettings которого принадлежит данный объект DataView Setting:

public DataViewManager DataViewManager {get;}

^■^^^Н ЧАСТЬ 8 ОТНОШЕНИЯ МЕЖДУ ТАБЛИЦАМИ НАБОРА ДАННЫХ

8.1. Отношения между таблицами набора данных

Таблицы в базе данных могут быть связаны так называемыми реляционными отношениями (связями), т. е. отношениями подчинения. Такие отношения бывают трех типов: "один-к-одному", "один-ко-многим" (либо "многие-к-одному") и "многие-ко-многим". Особенности реализации отношений между таблицами рассматриваются ниже.

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

Поскольку набор данных - это как бы база данных в миниатюре, то внутри набора таблицы тоже могут связываться отношениями. Последние реализуются в ADO.NET при помощи объектов типа DataRelation. Все такие отношения хранятся в коллекции Relations набора данных.

8.1.1. Типы связей (отношений) таблиц базы данных 8.1.1.1. Отношение "один-ко-многим"

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 8.1

Как видно из рис. 8.1, одной записи из родительской таблицы Товары может соответствовать несколько записей в дочерней таблице Отпуск товаров. Обратите внимание на глагол может: он означает, что такая возможность потенциальная и что в родительской таблице могут быть записи, для которых в данный момент нет записей в дочерней таблице (например, товар Куры).

Различают две разновидности связи "один-ко-многим": в первом случае выдвигается жесткое требование, согласно которому всякой записи в родительской таблице должны соответствовать записи в дочерней таблице; во втором случае подобное требование не носит жесткого характера и подразумевается (как в описанном выше случае), что некоторые записи в родительской таблице могут не иметь связанных с ними записей в дочерней таблице.

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

8.1.1.2. Отношение "один-к-одному"

Отношение "один-к-одному" имеет место, когда одной записи в родительской таблице соответствует одна запись в дочерней таблице (рис. 8.2).

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 8.2

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


⇐ Предыдущая страница| |Следующая страница ⇒