Мои данные расположены в двух связанных таблицах (SQLite). Допустим, таблица «Семьи и люди». Структура таблицы выглядит следующим образом.
CREATE TABLE families (
FamilyID INTEGER PRIMARY KEY AUTOINCREMENT,
FamilyName VARCHAR,
FamilyPower INTEGER,
FamilyStatus Boolean
);
CREATE TABLE people (
PersonID INTEGER PRIMARY KEY AUTOINCREMENT,
FamilyID INTEGER REFERENCES families (FamilyID),
Name Varchar,
Age INTEGER
);
Я хотел бы отобразить данные из этой таблицы в сгруппированной DataGrid. Я могу расположить эти данные как DataSet, или как Объекты пользовательского класса или Объекты с сеткой (люди могут быть списком объектов класса Person внутри объекта Family). Но я не уверен, какой вариант лучше.
Худшим вариантом (я думаю) является создание одной таблицы данных, содержащей объединенные таблицы, например SELECT * FROM families LEFT JOIN people ON families.FamilyID = people.PersonID
. Но я могу ошибаться, и на самом деле это лучший вариант для достижения того, чего я хочу.
Я хочу отображать сгруппированные данные с заголовком группы, содержащим полную информацию о семействе и всех его членах в виде строк данных. Так это будет выглядеть ниже:
PersonID | Name | Age |
FamilyID: 1 Name: Stark Power: 10 Members: 3 Status: [x] <-- This is checkbox
1 | Eddard | 60 |
2 | Robb | 30 |
3 | Arya | 15 |
FamilyID: 2 Name: Lannister Power: 15 Members: 4 Status: [x]
4 | Cersei | 30 |
5 | Tyrion | 35 |
6 | Jaimie | 30 |
7 | Tywin | 30 |
FamilyID: 1 Name: Targaryen Power: 10 Members: 1 Status: [ ]
1 | Daenerys | 30 |
Возможно ли вообще этого достичь? Пожалуйста, помогите мне выбрать лучший способ хранения данных и решить, как связать и сгруппировать их в DataGrid?