Я разрабатываю приложение, которое имеет дело с двумя наборами данных - пользователями и областями. Данные считываются из файлов, созданных третьей стороной. У меня есть класс User и класс Area, и данные считываются в массив Users и массив Areas (или другую соответствующую структуру памяти, в зависимости от технологии, с которой мы работаем).Моделирование связанных объектов
В обоих классах есть уникальный идентификатор, который считывается из файла, а класс User содержит массив идентификаторов областей, что дает отношения, когда один пользователь связан со многими областями.
Требования достаточно прост:
- Список пользователей
- Список областей
- Список пользователей для указанной области
- Список областей для определенных пользователей
Моих первая мысль заключалась в том, чтобы оставить данные в двух массивах, тогда для каждого из требований есть отдельный метод, который d запрашивать один или оба массива по мере необходимости. Это было бы легко реализовать, но я не уверен, что это обязательно лучший способ.
Затем я подумал о том, что метод «Получить районы» для класса «Пользователь» и «Получить пользователей» в классе Area был бы более полезен, если, например, я на этапе, когда у меня есть объект Area , Я мог бы найти его пользователями по свойству, но тогда как метод «Получить пользователей» в классе Area должен был знать/иметь доступ к массиву Users.
У меня была эта проблема несколько раз раньше, но на самом деле не придумал окончательного решения. Возможно, я просто делаю это более сложным, чем на самом деле. Может ли кто-нибудь предоставить какие-либо советы, URL-адреса или книги, которые помогут мне с таким дизайном?
ОБНОВЛЕНИЕ: Спасибо, что нашли время, чтобы оставить несколько советов. Ваши комментарии очень ценятся.
Я согласен с тем, что корень этой проблемы является отношением «многие ко многим». Я понимаю, как это будет смоделировано в реляционной базе данных, это довольно просто.
Данные, которые я получаю, представлены в виде двоичных файлов от третьего лица, поэтому я не могу контролировать их структуру, но я могу сохранить его в зависимости от того, какой способ лучше, когда я его прочитал. квадратные колышки в круглых отверстиях, но я думал, что прочитал его, а затем сохранил его в базе данных, тогда программа должна была бы запросить базу данных, чтобы получить результаты. Это не массивный объем данных, поэтому я подумал, что можно будет получить то, что мне нужно, сохранив его в структурах памяти.
Если я использую .NET, я хотел бы использовать общие списки вместо массивов. Однако у меня нет большого опыта работы с DataTables. Я рассмотрю это. – Gavin 2008-10-01 10:26:48