Модель книжного магазина - PullRequest
2 голосов
/ 27 апреля 2010

Я разрабатываю решение. Я хочу смоделировать следующую структуру

Collection 1
       Category 1
        Sub Category 1.1
                  Book 1
                  Book 2
                  Book 3

        Sub Category 1.2
                 Book 1
       Category 2
        Sub Category 2.1
                Book 2
        Sub Category 2.2
                Book 3
        Sub Category 2.3
                Book 4
       Category 3
        Sub Category 3.1
                Book 4

)

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

1) Из коллекции в книгу (т. Е. Если коллекция выбрана, найдите все категории, подкатегории и книги по ней).

2) От книги к коллекции (т. Е. Если книга выбрана, она должна быть в состоянии найти, к какой подкатегории, категории и коллекции она принадлежит)

Ответы [ 2 ]

1 голос
/ 28 апреля 2010

Вот базовая модель для вашего приложения.

альтернативный текст http://ruchitsurati.net/myfiles/bookstore.png

public class Book
{
    public Category ParentCategory { get; set; }
    public Book() { }
}

public class Category
{
    public CategorySet SubCategories { get; set; }
    public BookSet Books { get; set; }

    public Category()
    {
        SubCategories = new CategorySet();
        Books = new BookSet();
    }
}

public class Collection
{
    public CategorySet Categories { get; set; }
    public Collection() {
        Categories = new CategorySet();
    }
}

public class BookSet : System.Collections.ObjectModel.Collection<Book>
{
    public BookSet() { }
}

public class CategorySet : System.Collections.ObjectModel.Collection<Category>
{
    public CategorySet() { }
}

public class CollectionSet : System.Collections.ObjectModel.Collection<Collection>
{
    public CollectionSet() { }
}
0 голосов
/ 27 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...