View Full Version : حرفه ای: افزودن فیلد های دلخواه به جدول محصولات به صورت داینامیک
سعید کشاورز
چهارشنبه 13 تیر 1397, 10:31 صبح
سلام دوستان..
توی یه فروشگاه ما یه جدول محصولات داریم که یه سری فیلد های مشخص برای همه محصولات وجود داره..
حالا یه سری محصولات فیلد های اختصاصی خودشون رو دارند.
چجوری میشه فیلدهای اضافی هر محصول رو به صورت داینامیک تعریف کرد؟
سوال دوم: آیا میشه برای فیلد های داینامیک توی سایت فیلتر گذاشت؟
f_talebi
چهارشنبه 13 تیر 1397, 13:15 عصر
یه زمانی هرطور ک میشد هرکی هرچی بلد بود جواب سوال ها رو میداد الان دیگه اینجور نیست :|:اشتباه:
ali_md110
پنج شنبه 14 تیر 1397, 02:48 صبح
برای جدول محصولات بجای تعریف خاصیت های مختلف و منحصر برای کالاهای مختلف از جداولی بصورت key value استفاده کنید
در این روش بجای اینکه جدول کالا ها با چند جدول مختلف join شود فقط با یک یا دو جدول ارتباط دارد
مثالی میزنم
موجودیت کالا و مواد
public class Item
{
public virtual string ItemName { get; set; }
public virtual string AliasName { get; set; }
public virtual string ItemNumber { get; set; }
public virtual string SerialNumber { get; set; }
public virtual string AssetNumber { get; set; }
public virtual bool IsExpierd { get; set; }
public virtual int TotalQty { get; set; }
public virtual string ImageUrl { get; set; }
public virtual float Barcode { get; set; }
public virtual bool Discontinue { get; set; }
public virtual ICollection<ItemPropertyValue> ItemPropertyValues { get; set; }
}
موجودیت بعدی لیست خواصی هست که برای تمام کالا ها میتوان تصور کرد
مثلا رنگ-سرعت-توان-فرکانس
public class ItemProperty:EntityBase
{
public virtual string PropertyName { get; set; }
public virtual ItemPropertyType ItemPropertyType { get; set; }
public virtual ICollection<ItemPropertyValue> ItemPropertyValues { get; set; }
}
موجودیت بعدی تعریف خواص برای کالا ها هست
مثال: کالای سی پی یو و تعداد زیادی خواص مربوط به خود مثل سرعت یا باس و غیره
public class ItemPropertyValue:EntityBase
{
[ForeignKey("ItemId")]
public virtual Item Item { get; set; }
public virtual int ItemId { get; set; }
[ForeignKey("ItemPropertyId")]
public virtual ItemProperty ItemProperty { get; set; }
public virtual int ItemPropertyId { get; set; }
public string Value { get; set; }
}
البته میتونید به جدول کالا ItemCategoryId هم اضافه کنید و یا جدول برند محصولات هم یک رابطه داشته باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.