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

نام تاپیک: منظور از فیلد سفارشی در پروژه چیست؟

  1. #1

    منظور از فیلد سفارشی در پروژه چیست؟

    سلام
    در توضیحات پروژه ای که باید بنویسم نوشته شده که :
    کد HTML:
    یک سیستم فیلد سفارشی هم در نظر بگیرید که موجودیت ها به صورت مستقیم یا غیر مستقیم می توانند از آن استفاده کنند.
    به عنوان مثال محصول بر حسب دسته بندی فیلد هایی به آن اضافه می شود.و کاربر بر حسب نیاز شرکت فیلدی مثل کد ملی را به کاربر اضافه می کند و کاربر را موظف به وارد کردن این فیلد می کند.
                  مثال برای محصول بر حسب دسته بندی ضد یخ،فیلد تاریخ انقضا دارد.
    خواستم راهنمایی کنید که چجوری این فیلد رو در پروژه ایجاد کنم؟

  2. #2
    کاربر دائمی آواتار alireza_s_84
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    اهواز
    پست
    1,191

    نقل قول: منظور از فیلد سفارشی در پروژه چیست؟

    نقل قول نوشته شده توسط تبسم ساینا مشاهده تاپیک
    سلام
    در توضیحات پروژه ای که باید بنویسم نوشته شده که :
    کد HTML:
    یک سیستم فیلد سفارشی هم در نظر بگیرید که موجودیت ها به صورت مستقیم یا غیر مستقیم می توانند از آن استفاده کنند.
    به عنوان مثال محصول بر حسب دسته بندی فیلد هایی به آن اضافه می شود.و کاربر بر حسب نیاز شرکت فیلدی مثل کد ملی را به کاربر اضافه می کند و کاربر را موظف به وارد کردن این فیلد می کند.
                  مثال برای محصول بر حسب دسته بندی ضد یخ،فیلد تاریخ انقضا دارد.
    خواستم راهنمایی کنید که چجوری این فیلد رو در پروژه ایجاد کنم؟
    به این میگین طراحی دینامیک یا پویا. یعنی شما یکسری کالا داری که یکسری خصوصیات دارن که برخی خصوصیات مشترک و برخی منحصر به فرد هستند. پس از ابتدا نمیدونید که چه تعداد خصوصیت دارین که براش ستون در نظر بگیرین.
    برای مثال فروشگاهی رو در نظر بگیرین که هم موبایل میفروشه هم کفش و هم عطر. حالا جدول کالا باید چه ستونهایی داشته باشه؟ موبایل خصوصیت "تعداد سیم کارت" داره ولی عطر همچین خصوصیتی نداره. این یعنی ناهمگن بودن خصوصیات موجودیت
    در اینحالت شما باید یک جدول داشته باشین که خصوصیات رو نگه داره (مثلا رنگ، وزن، تاریخ انقضا، حجم، تعداد سیم کارت و ...) و یک جدول برای ثبت خصوصیت و مقدارش. دیاگرام زیر نحوه پیاده سازی کامل این سیستم هست:
    Name:  Untitled.png
Views: 413
Size:  13.3 کیلوبایت
    جدول Categories مربوط به دسته بندی کالاها هست: مثلا لوازم الکترونیکی، پوشاک و ...
    جدول Products مربوط به کالاعا هست: مثلا روکش ماشین، روغن ترمز، ساعت، موبایل و ...
    جدول Properties برای نگهداری ویزگی ها استفاده میشه. مثلا: رنگ، وزن، حجم و ...
    جدول ProductProperties برای نگهداری خصوصیات هر کالا استفاده میشه: مثلا کالای شماره 1 دارای خصوصیت شماره 1 هست و مقدارش هست قرمز، کالای شماره 1 دارای خصوصیت شماره 5 هست و مقدارش هست 250 گرم
    جدول CategoryProperties هم به عنوان یک جدول کمکی میشه ازش استفاده کرد که بگه هر گروه کالا چه خصوصیاتی داره مثلا گروه تلفن همراه خصوصیات شماره 1 و 2 و 3 رو داره که از جدول خصوصیات مقدار میگیره
    در این نوع طراحی مشکل زمانی پیش میاد که شما میخواین اطلاعات ذخیره شده بصورت سطری (در اینجا خصوصیات) رو بصورت ستونی نمایش بدین در این حالت باید از T-Sql خاص و پیشرفته استفاده کنید. یک نمونه از واکشی اطلاعات رو در کوئری زیر میبنید:
    DECLARE @Columns AS NVARCHAR(MAX);DECLARE @Query  AS NVARCHAR(MAX);


    SELECT @Columns = STUFF(
    (
    SELECT ', ' + QUOTENAME(Properties.Name)
    FROM Properties INNER JOIN CategoryProperties ON Properties.PropertyId = CategoryProperties.PropertyId
    WHERE CategoryId = 1
    FOR XML PATH('')
    ), 1, 1, '')


    SET @Query = 'SELECT * FROM
    (
    SELECT pro.ProductId, pro.Name AS ProductName, p.Name, pp.Value FROM ProductProperties pp
    INNER JOIN Properties AS p ON pp.PropertyId = p.PropertyId
    INNER JOIN Products AS pro ON pro.ProductId = pp.ProductId
    WHERE pro.CategoryId = 1
    ) d
    PIVOT
    (
    MAX(Value)
    FOR Name IN (' + @Columns + ')
    ) piv';


    EXEC sp_executesql @Query;


    و برای کمک بیشتر نمونه پایگاه و کوئری بالا بطور کامل:
    فایل های ضمیمه فایل های ضمیمه

  3. #3

    نقل قول: منظور از فیلد سفارشی در پروژه چیست؟

    خیلی عالی توضیح دادید ممنون.
    یه سوال دیگه ، طبق توضیحاتی پست اولم از من خواسته شده که هم برای محصول و هم برای کاربران فیلد سفارشی درست کنم.در نتیجه همه ی این جداول مربوط به محصول و خصوصیات و.. رو باید برای کاربر هم ایجاد کنم درسته؟چون فکر میکنم اگه بخوام برای همه ی خصوصیات کاربران و محصولات یه جدول در نظر بگیرم پیچیده میشه.
    و سوال دیگه اینکه برای پیاده سازی این نوع طراحی در asp.net چه روشی پیشنهاد می دیدید؟

  4. #4
    کاربر دائمی آواتار alireza_s_84
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    اهواز
    پست
    1,191

    نقل قول: منظور از فیلد سفارشی در پروژه چیست؟

    نقل قول نوشته شده توسط تبسم ساینا مشاهده تاپیک
    خیلی عالی توضیح دادید ممنون.
    یه سوال دیگه ، طبق توضیحاتی پست اولم از من خواسته شده که هم برای محصول و هم برای کاربران فیلد سفارشی درست کنم.در نتیجه همه ی این جداول مربوط به محصول و خصوصیات و.. رو باید برای کاربر هم ایجاد کنم درسته؟چون فکر میکنم اگه بخوام برای همه ی خصوصیات کاربران و محصولات یه جدول در نظر بگیرم پیچیده میشه.
    و سوال دیگه اینکه برای پیاده سازی این نوع طراحی در asp.net چه روشی پیشنهاد می دیدید؟
    شما هرکجا نیاز به چنین خصوصیاتی داشتین باید تفکیک مناسب (نرمالسازی) رو انجام بدین. همچنین موجودیتهای "محصول" و "کاربر" کاملا باهم متفاوت هستن پس جداول متفاوتی هم خواهند داشت.
    برای پیاده سازی هم میتونید از EF استفاده کنید و کوئری رو مستقیم اجرا کنید. نتیجه برگشتی رو بصورت یک شی dynamic میتونید به View بدین و Html مورد نیاز رو ایجاد کنید.

تاپیک های مشابه

  1. سوال: منظور از Change Tracking در EF چیست؟
    نوشته شده توسط Maryam_1368 در بخش ASP.NET MVC
    پاسخ: 3
    آخرین پست: سه شنبه 14 اردیبهشت 1395, 06:31 صبح
  2. سوال: منظور از رویداد selectionchangecommitted در Combo box چیست؟
    نوشته شده توسط تبسم ساینا در بخش C#‎‎
    پاسخ: 2
    آخرین پست: یک شنبه 03 اسفند 1393, 17:32 عصر
  3. سوال: منظور از mvc نویسی در جاوا چیست؟
    نوشته شده توسط طبیب دل در بخش برنامه‌نویسی جاوا
    پاسخ: 1
    آخرین پست: چهارشنبه 01 مرداد 1393, 11:30 صبح
  4. سوال: منظور از عنصر جاری در ارایه های php چیست؟
    نوشته شده توسط pouyajabbarisani در بخش PHP
    پاسخ: 4
    آخرین پست: شنبه 23 شهریور 1392, 13:52 عصر
  5. سوال: منظور از بردار پرش در سي چيست؟
    نوشته شده توسط complexcoding در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: چهارشنبه 29 آذر 1391, 11:00 صبح

برچسب های این تاپیک

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

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