asp.net mvc - Advice on datamodel structure -


i'm practicing asp.net mvc 5, , i'm attempting build prototype events directory. i've started basic layout, adapted contoso university tutorial, want start develop more complex data model, i'm unsure best way develop model, specifically, different pricing options each listing can have.

my current data model is;

vendors

 public class vendor {     public int id { get; set; }     [required]     [display(name = "company name")]     [stringlength(50, errormessage = "company name cannot longer 50 characters.")]     public string companyname { get; set; }     [required]     [display(name = "first name")]     [stringlength(50, errormessage = "first name cannot longer 50 characters.")]     public string contactfirstname { get; set; }     [required]     [display(name = "last name")]     [stringlength(50, errormessage = "last name cannot longer 50 characters.")]     public string contactlastname { get; set; }     [required]     [display(name = "address")]     public string address { get; set; }     [required]     [display(name = "address line 2")]     public string addressline2 { get; set; }     [required]     public string region { get; set; }     [required]     public string city { get; set; }     [required]     public string postcode { get; set; }     [required]     [display(name = "email address")]     public string email { get; set; }     [required]     [display(name = "phone number")]     public string phone { get; set; }     [display(name = "twitter @username")]     public string twitterhandle { get; set; }     [display(name = "facebook url")]     public string facebookurl { get; set; }     [required]     [display(name = "active vendor?")]     public boolean activestatus { get; set; }      public virtual icollection<listing> listings { get; set; } } 

listings

public class listing {     public int listingid { get; set; }     public int categoryid { get; set; }     public int vendorid { get; set; }     [required]     [display(name = "listing name")]     public string listingname { get; set; }     [required]     [display(name = "listing description")]     public string listingdesc { get; set; }     [required]     [display(name = "maximum capacity")]     public int capacity { get; set; }     [required]     [datatype(datatype.currency)]     [display(name = "price per guest")]     public decimal priceperguest { get; set; }     [required]     public string address { get; set; }     [display(name = "address line 2")]     public string address2 { get; set; }     [required]     public string city { get; set; }     [required]     public string postcode { get; set; }      public virtual category category { get; set; }     public virtual vendor vendor { get; set; } } 

categories

 public class category     {         [databasegenerated(databasegeneratedoption.none)]         public int categoryid { get; set; }         public string categoryname { get; set; }         public string categorydescription { get; set; }          public virtual icollection<listing> listings { get; set; }     } 

ideally, i'd add listing table new property called 'fixed price', giving vendors option either list price per guest or fixed price, not vendors can price services price per guest.

is separate table pricing options sufficient enough develop further?

p.s - haven't yet started format entities yet, hence why categories missing validation , on.

price (currency) , isfixedprice (bit) instead of priceperguest

thanks @nikhil vartak answer


Comments

Popular posts from this blog

inversion of control - Autofac named registration constructor injection -

verilog - Systemverilog dynamic casting issues -

ios - Change Storyboard View using Seague -