نمایش نتایج 1 تا 4 از 4

نام تاپیک: طراحی تیبل محصولات و ویژگی های داینامیک ؟؟

  1. #1

    طراحی تیبل محصولات و ویژگی های داینامیک ؟؟

    سلام

    یک سری محصول داریم که هر محصول ویژگی هایی با مقادیر خاص دارند . این ویژگی ها از قبل تعریف شده نیستند و کاربر آنها رو ایجاد میکنه و مقدار میده

    به عنوان مثال :
    Capture.PNG

    یعنی ویژگی کاملا داینامیک باشد

    حالا من تیبل های مرتبط رو چه طور طراحی کنم که کاربر بتونه محصولات رو با ویژگی خاص پیدا کنه

    یعنی بتونه بگه محصولی رو میخوام که ویژگی P1 برابر V1و P2 برابر V2 و P3 برابر V5 باشه

    چیزی که من درست کردم در ابتدا به اینصورته :
    Capture1.PNG

    ولی نمیدونم چه جوری کوئری بزنم چون تعداد شروطی که کاربر میزاره مشخص نیست یعنی تعداد ویژگی هایی که فیلتر میکنه نا مشخصه.
    خلاصه کمک کنید ممنون

  2. #2
    کاربر دائمی آواتار in_chand_nafar
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    www.NikAmooz.com
    پست
    466

    نقل قول: طراحی تیبل محصولات و ویژگی های داینامیک ؟؟

    تمامی این مواردیکه می گم باید روش بحث و بررسی بشه
    جدول انواع ویژگی : کد ویژگی int- نام ویژگی Nvarchar(100) : اگر خواستی نوع ویژگی را اضافه کن و موقع ایجاد UI فیلد دیتا اینتری را بر اساس آن در نظر بگیر
    جدول انواع محصول : کد محصول int - نام محصول Nvarchar(100)
    جدول ویژگی هر محصول : ID - کد محصول int- کد ویژگی int ، مقدار ویژگی (Nvarchar(100))
    فعلا با این شروع کن اگر خواستی به راحتی می توانی Select های مورد نظر خودت رو ایجاد کنید
    یه راخهش این است که بری سراغ XML و XQUery که کمی سخت و... است اما در کل یه راه خوب است

  3. #3

    نقل قول: طراحی تیبل محصولات و ویژگی های داینامیک ؟؟

    ممنون از جواب شما

    لطف کنید در مورد select توضیح بدید من قبلا موارد مورد اشاره شما رو تست کردم مسئله اینه که چون تعداد ویژگی ها ی فیلتر شده رو نمی دونیم نمی دونم چه جوری از subquery و select های تو در تو استفاده کنم

  4. #4
    کاربر دائمی آواتار in_chand_nafar
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    www.NikAmooz.com
    پست
    466

    نقل قول: طراحی تیبل محصولات و ویژگی های داینامیک ؟؟

    دوست عزیز یه سر به اینجا بزنید
    https://barnamenevis.org/showthread.p...&highlight=EAV
    -----
    دوست عزیز توی این مقاله روش های مختلف رو بررسی کرده و ایراد و خوبی اونها را گفته روش جالبش اینه
    Class Table Inheritance: one table for Products, storing attributes common to all product types. Then one table per product type, storing attributes specific to that product type.
    یه نگاهی بیانداز خیلی ساده و کم هزینه است در جدول کالا یک فیلد با نام Attribute داشته باش که از نوع Varchar(max) است
    و ویژگی ها با کاما از هم جدا شده اند .... مثال
    ------------ Rec1
    نام کالا : موز
    ویژگی ها : نوع:میوه*رنگ:زرد*شرکت تولید کننده:سومالی
    ------------ Rec2
    نام کالا : سیب
    ویژگی ها : نوع:میوه*رنگ:زرد*شرکت تولید کننده:مراغه
    ------------ Rec3
    نام کالا : سیب
    ویژگی ها : نوع:میوه*رنگ:قرمز*شرکت تولید کننده:دماوند
    ------------ Rec4
    نام کالا : مداد
    ویژگی ها : نوع:لوازم التحریر*رنگ:قرمز*شرکت تولید کننده:استدلر
    ------------ Rec5
    نام کالا : خودکار
    ویژگی ها : نوع:لوازم التحریر*رنگ:سبز*شرکت تولید کننده:استدلر
    ------------ Rec5
    نام کالا : مداد شمعی
    ویژگی ها : نوع:لوازم التحریر*رنگ:سبز*شرکت تولید کننده:بیک

    لیست کالاهایی که رنگشان قرمز و شرکت تولید کننده اشان استدلر باشد
    اگر از این ساختار خوشت نیاومد می توانی از XML استفاده کنی


    -----


    یادم میاد توی یکی از کتاب های itzik ben gan (نویسنده یهودی کتاب های MSPress)
    به این مسئاله اشاره شده بود و روش های مختلف را از نظر Performance مقایسه می کرد
    http://www.amazon.com/Inside-Microso.../dp/0735626030
    آخرین ویرایش به وسیله in_chand_nafar : دوشنبه 24 بهمن 1390 در 18:18 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •