ASP.NET MVC5 и Entity Framework вопросы проектирования - PullRequest
0 голосов
/ 10 октября 2019

Я хочу создать простой сайт электронного обучения;в котором вы можете разместить учебные пакеты, информацию о курсе, видео и документы. Студенты должны будут сделать единовременный платеж, чтобы получить доступ к нему. Я могу создать процесс оформления заказа и т. Д., Но моя проблема заключается в том, чтобы назначить этот пакет пользователю, а затем показать, что он уже приобретен, и разрешить пользователям добавлять контент в курсы.

Я думал, что для этого будут разные области, например, когда пользователь совершит успешную покупку, ему будет назначена роль, а затем идентификация asp.net может показать правильные представления. Однако это кажется утомительным и нереалистичным подходом.

В настоящее время у меня есть четыре объекта БД: Category, Industry, Product, ProductItem.

Категория

    public class Category
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        public string Title { get; set; }
    }

Промышленность

    public class Industry
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        [MaxLength(55)]
        [Display(Name = "Industry")]
        public string Title { get; set; }
    }

Продукт

    public class Product
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        [Required]
        [Display(Name = "Product Name")]
        [MaxLength(55)]
        public string Name { get; set; }

        [Required]
        [MaxLength(255)]
        public string Description { get; set; }

        [Required]
        [Range(0, 2000)]
        public decimal Price { get; set; }

        public string Image { get; set; }

        [Display(Name = "Industry")]
        public int IndustryId { get; set; }

        public Industry Industry { get; set; }
    }

Товар

    public class ProductItem
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        public string Title { get; set; }

        [Display(Name = "Course")]
        public int ProductId { get; set; }

        public Product Product { get; set; }

        [Display(Name = "Category")]
        public int CategoryId { get; set; }

        public Category Category { get; set; }
    }

Я использую класс Product в качестве начального вида курса и ProductItem в качестве содержимого курса, к которому пользователи могут получить доступ. Пожалуйста, предложите любые изменения в базе данных, которые помогут. примечание: я использую удостоверение asp.net для пользователей.

1 Ответ

1 голос
/ 10 октября 2019

Я не смог прокомментировать из-за низкого числа повторений, но как насчет такого решения: вы можете добавить новый столбец в таблицу «Пользователь» «IsPremium» как bool или как бы вы ни хотели его назвать, когда покупка сделана, выпереключит это значение в true. И затем, основываясь на статусе пользователя, вы можете загрузить представления.

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