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

نام تاپیک: ایجاد جدول برای محصولات مختلف

  1. #1
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    ایجاد جدول برای محصولات مختلف

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

    آخرین ویرایش به وسیله mahsa_rezai : پنج شنبه 16 بهمن 1393 در 16:57 عصر

  2. #2
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    دوستان کسی نیست راهنمایی کنه؟

  3. #3

    نقل قول: ایجاد جدول برای محصولات مختلف

    با سلام

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

    روشی که آقای sadegh.te مطرح کردن روش صحیحی است که به آن entity-attribute-value یا همان EAV می گویند.

    ولی نکته مهمی که در استفاده از این روش مطرح است این است که نباید از این مدل در قسمت های کلیدی نرم افزار استفاده گردد. زیرا در این روش پایگاه داده به طور اتوماتیک کنترلی بر consistency داده های پایگاه داده نداشته و این عمل می بایست با کمک تریگر انجام شود.

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

    البته MS SQL Server در نسخه 2005 با ارائه قابلیت Pivot راه کاری برای حل این مشکل ارائه کرد. ولی باز هم تاکید دارم که در مواردی که Core نرم افزارتان بر این اساس استوار باشد به مشکل خواهید افتاد.

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

  4. #4
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    ممنونم از شما جناب NanShekari من
    آخرین ویرایش به وسیله mahsa_rezai : پنج شنبه 16 بهمن 1393 در 16:57 عصر

  5. #5

    نقل قول: ایجاد جدول برای محصولات مختلف

    اگر شما 4000 محصول داشته باشید و هر محصول به طور متوسط 20 خصوصیت داشته باشد کل رکورد های شما حتی به یک میلیون هم نمی رسد.
    این روش برای تعداد خیلی بیشتر از این ها هم جواب گو می باشد.

    تنها مشکل در نحوه گزارش گیری می باشد. به عنوان مثال من می خواهم موبایل کمتر از 3 میلیون تومان و رنگ سفید را انتخاب کنم به شرطی که قابلیت X رو هم داشته باشه در این حالت ممکن است در سمت دیتابیس کمی به مشکل بر خورد کنید ولی نه برای این تعداد رکورد.

    روش جایگزین هم می تواند XML می باشد که کمی برنامه نویسی را راحت تر می کند.
    در هر صورتبا توجه به تعداد رکورد شما و این که گزارشات پیچیده ای بر روی آن نخواهید داشت در انتخاب راه کار آزاد هستید.

    موفق باشید

  6. #6
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    اگر شما 4000 محصول داشته باشید و هر محصول به طور متوسط 20 خصوصیت داشته باشد کل رکورد های شما حتی به یک میلیون هم نمی رسد.
    این روش برای تعداد خیلی بیشتر از این ها هم جواب گو می باشد.
    یعنی اگه داده های من به
    آخرین ویرایش به وسیله mahsa_rezai : پنج شنبه 16 بهمن 1393 در 16:58 عصر

  7. #7

    نقل قول: ایجاد جدول برای محصولات مختلف

    من نگفتم به یک میلیون برسه مشکل ساز خواهد بود چرا که در مورد دیتابیس هیچ وقت نمی شه به طور قطعی بدون داشتن اطلاعات کافی پاسخ داد.
    برای پاسخ به این مسئله باید مشخصات سرور، نوع RDBMS مورد استفاده که در مورد شما به احتمال زیاد MS SQL است، تعداد و نوع هارد دیسک های سرور، نحوه RAID هارد دیسک ها و تعداد کاربران فعال سایت و همچنین پیش بینی همزمانی این تعداد کاربران مورد نیاز می باشد.

    ولی در کل چون در روش مورد بحث تقریبا برای فیلتر از هیچ ایندکسی استفاده نخواهد شد(Full Scan) لذا بحث IO مسئله ساز می تواند باشد. ولی این به معنای از کار افتادن سرویس سایت شما نمی باشد و با استفاده از سخت افزار مناسب این مسئله قابل حل است و در مورد سایت شما نگرانی ایجاد نخواهد کرد.

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


    با تشکر

  8. #8
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    فقط سعی کنید فیلد های اصلی کالا که در تمامی کالا ها یکسان می باشند مانند نوع کالا و برند آن را بر اساس مدل EAV طراحی نکنید تا بتوانید بر روی آن ایندکس گذاشته و جستجوی Pivot خود را محدود تر کنید.
    ممنون از شما که با حوصله پاسخ سوال ها رو میدید.

    همونطور که گفتید من فیلد های یکسان رو در یک جدول جدا گذاشتم. میشه یکم بیشتر راجع به روش جستجوی Pivot توضیح بدید؟ من اولین باره که این روش را میبینم.

    با هم تشکر از شما

  9. #9
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    دوست گرامی من با توجه به توضیحات شما تونستم جداول و رابطه های زیر را طراحی کنم .
    اگه میشه برسی کنید ببینید چه مشکلی داره ممنون.
    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله mahsa_rezai : دوشنبه 13 بهمن 1393 در 15:58 عصر

  10. #10

    نقل قول: ایجاد جدول برای محصولات مختلف

    با سلام

    طراحی مناسبی می باشد ولی تنها نکته موجود در آن مشکل 3NF در جدول کالا می باشد.
    فرم نرمال سطح 3 زمانی نقض می شود که خصوصیت (فیلد) غیر کلید به خصوصیت غیر کلید دیگری وابسته باشد.
    در مورد جدول کالا خصوصیت ID_Group به ID_Brand وابسته است. پس می توان آن را حذف کرد و در جدول دیگری این وابستگی رو ایجاد کرد که این رو در جدول Brand ایجاد کرده اید.

    فقط اگر جدول کالا تعداد رکورد های زیادی دارد و بیشتر جستجو ها بر روی آن خواهد بود بهتر است برای فیلد Image یا FileGroup آن را جدا نمایید یا از تکنیک های دیگر MSSQL استفاده نمایید.
    همچنین جدول Attribute را هم می توانید کاملتر نمایید. البته در صورت نیاز. مثلا برای هر گروه یک سری مشخصات ایجاد گردد و در جدول attribute مشخص شود که مقدار attribute چه می باشد. چون در غیر این صورت ممکن است برای مانیتور X فیلدی مانند سایز مقدار گیرد ولی برای مانیتور Y فیلد بی ربطی مانند حجم مقدار پذیرد و شما consistency داده ها را نمی توانید کنترل نمایید. البته همان طور که قبلا هم گفتم در مدل EAV در بسیاری از حالات consistency را می بایست از طریق تریگر ایجاد کرد.

  11. #11
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    در مورد جدول کالا خصوصیت ID_Group به ID_Brand وابسته است. پس می توان آن را حذف کرد و در جدول دیگری این وابستگی رو ایجاد کرد که این رو در جدول Brand ایجاد کرده اید.
    ممنون از شما و اگه ID_Brand را حذف کنیم چطور میتونیم بفهمیم که این ویژگی مربوط به کدام برند هست. مثلا فرض کنید که ID_Brand سامسونگ 18 هست حالا ما در گروه موبایل و تبلت و لپ تاپ این برند را داریم. یعنی باید در کل گروه ها ID_Brand سامسونگ 18 باشد؟
    میشه راهنمایی کنید که چطور در یک جدول دیگر میتونم پیاده سازیش کنم؟
    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    فقط اگر جدول کالا تعداد رکورد های زیادی دارد و بیشتر جستجو ها بر روی آن خواهد بود بهتر است برای فیلد Image یا FileGroup آن را جدا نمایید یا از تکنیک های دیگر MSSQL استفاده نمایید.
    منظور شما این هست که برای Image یک جدول جدا در نظر بگیریم و فقط ID عکس را در جدول کالا بگذاریم؟

    تشکر

  12. #12

    نقل قول: ایجاد جدول برای محصولات مختلف

    منظور من این هست که ID_Group حذف شود. چون با داشتن ID_Brand میتوان به گروه آن دسترسی پیدا کرد.

    در مورد Image هم می توانید جدولشو جدا کنید هم این که با خصوصیت TEXTIMAGE_ON در هنگام Create Table فقط FileGroup آن را تغییر دهید (در این شرایط MSSQL به طور اتوماتیک داده های از جنس text, ntext, image, xml, varchar(max), nvarchar(max), varbinary(max) را در FileGroup مشخص شده نگهداری می نماید.

    و یا این که از تکنیک FileTable و مواردی از این دست استفاده نمایید.

  13. #13

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط mahsa_rezai مشاهده تاپیک
    مثلا فرض کنید که ID_Brand سامسونگ 18 هست حالا ما در گروه موبایل و تبلت و لپ تاپ این برند را داریم. یعنی باید در کل گروه ها ID_Brand سامسونگ 18 باشد؟
    میشه راهنمایی کنید که چطور در یک جدول دیگر میتونم پیاده سازیش کنم؟
    ببینید در طراحی پایگاه داده به این نکته توجه نمایید که موجودیت های سیستم را شناسایی نمایید.
    همان طور که خودتان هم مطرح کردید سامسونگ یک برند است و ممکن است لامپ تولید کند و یا رادیو و یا توربین
    ولی برند همه این گروه ها سامسونگ است. این مورد را نادیده گرفته اید و در جدولی که برند را تعریف می کنید فقط می تواند در یک گروه عضویت داشته باشد.

  14. #14
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    ممنون از شما واقعا کمکم کردید.

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    همان طور که خودتان هم مطرح کردید سامسونگ یک برند است و ممکن است لامپ تولید کند و یا رادیو و یا توربین
    ولی برند همه این گروه ها سامسونگ است. این مورد را نادیده گرفته اید و در جدولی که برند را تعریف می کنید فقط می تواند در یک گروه عضویت داشته باشد.
    در این روش طراحی شده فکر کنم بشه ولی در این روش مثلا گروه موبایل برند سامسونگ کدش 18 هست و در گروه تبلت میتونیم بگیم برند سامسونگ کدش 32 باشه این روش درسته؟
    یا باید جدول را تغییر دهم؟

    حالا شما فرض کنید که گوشی سامسونگ نوت 3 داری چهار عکس هست آیا این 4 عکس را باید در چهار رکورد جدا ذخیره کنم؟
    آخرین ویرایش به وسیله mahsa_rezai : جمعه 10 بهمن 1393 در 13:48 عصر

  15. #15

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط mahsa_rezai مشاهده تاپیک

    در این روش طراحی شده فکر کنم بشه ولی در این روش مثلا گروه موبایل برند سامسونگ کدش 18 هست و در گروه تبلت میتونیم بگیم برند سامسونگ کدش 32 باشه این روش درسته؟
    یا باید جدول را تغییر دهم؟
    اگر سایت شما زمانی به امید خدا پر رونق شد و تعداد سفارشات شما به حد بالایی رسید شما یا مدیران Business برای اخذ تصمیمات استراتژیک نیاز به آمارهایی مبتنی بر برند خواهند داشت.
    به طور مثال من میخوام بدونم اگر در خصوص برند سامسونگ صرفنظر از گوشی یا تبلت یا مانیتور شرکتم چقدر سفارش داشته به طوری که اگر به یک حد ممکن رسیده مستقیما عمل واردات رو انجام بدم و هزینه تمام شدن اون رو کاهش بدم برای یک چنین گزارشی نیاز دارید برند سامسونگ داشته باشید نه برند تبلت سامسونگ نه برند موبایل سامسونگ. اصولا تو آبجکت اورینتت هم شما آبجکت سامسونگ دارید نه چیز دیگه ای.

    برای این در جدول برند فیلد ID_Group را حذف کنید و جدول واسطی طراحی کنید که فیلد های زیر رو دارند
    ID
    ID_Group
    ID_Brand
    در این شرایط شما یک واسط خواهید داشت که برند رو به گروه وصل می کند بعد ID همین جدول رو در جدول کالا استفاده نمایید.(رابطه چند به چند) (این یک پیشنهاد بود و ممکن است نیازی به این در Business شما نباشد)

    اگر شما نیاز به نگهداری چند تصویر یا فایل برای یک کالا دارید می توانید فیلد Image رو از جدول کالا حذف کرده و جدول دیگری برای نگهداری تصاویر در نظر بگیرید (رابطه یک به چند)

  16. #16
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک

    برای این در جدول برند فیلد ID_Group را حذف کنید و جدول واسطی طراحی کنید که فیلد های زیر رو دارند
    ID
    ID_Group
    ID_Brand
    در این شرایط شما یک واسط خواهید داشت که برند رو به گروه وصل می کند بعد ID همین جدول رو در جدول کالا استفاده نمایید.(رابطه چند به چند)

    اگر شما نیاز به نگهداری چند تصویر یا فایل برای یک کالا دارید می توانید فیلد Image رو از جدول کالا حذف کرده و جدول دیگری برای نگهداری تصاویر در نظر بگیرید (رابطه یک به چند)
    ممنون از شما دوست گرامی.
    باتوجه به توضیحاتی که شما گفتید من جداول رو تصحیح کردم اگه ممکنه ببینید مشکلی نداره؟

    Sample2.png

  17. #17

    نقل قول: ایجاد جدول برای محصولات مختلف

    لطفا جدول Image رو به صورت زیر اصلاح نمایید
    ID
    ID_Product
    Image
    Description(در صورت نیاز)

    و جدول Product فیلد ID_Image رو حذف نمایید.
    بدین صورت یک Product می تواند چندین عکس داشته باشد

  18. #18
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    ممنون از شما اون مشکل با توضیحات شما حل شد.

    این جداول بنظر شما آماده بکار هستند یعنی از لحاظ آنومالی و... میگم؟

    اگه بخوام که کاربر ها برای هر محصول نظر بزارن باید مثل جدول Image براش یه جدول درست کنم؟ البته میخوام که هر کس برای محصول نظر گذاشت بقیه کاربران بتونن به اون نظر امتیاز بدن مثلا هرکس که روی دکمه کلیک کرد امتیاز اون نظر با 1 جمع بشه و یکی به امتیازاتش اضافه بشه میشه راهنمایی کنید؟
    این جدول را در نظر گرفتم برای نظرات و امتیاز دهی بنظرتون درسته؟
    01-02-2015 02-41-52 ب.png
    بازم ممنون
    آخرین ویرایش به وسیله mahsa_rezai : یک شنبه 12 بهمن 1393 در 14:03 عصر

  19. #19

    نقل قول: ایجاد جدول برای محصولات مختلف

    با سلام
    بله درسته ولی معمولا برای امتیاز دادن به یک آیتم جدول زیر رو در نظر می گیرند
    ID_Message
    ID_User
    Rate
    DateTime

    و کلید اصلی
    ID_Message
    ID_User
    می باشد. و رتبه نهایی یک پیام معادل میانگین رتبه های داده شده به آیتم خواهد بود. در این شرایط یک کاربر قادر نیست برای یک آیتم بیش از یک بار امتیاز بدهد.
    در ضمن شما برای کالا جدول Attribute رو تعریف نکردین(یادآوری)
    موفق باشید

  20. #20
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    با سلام
    بله درسته ولی معمولا برای امتیاز دادن به یک آیتم جدول زیر رو در نظر می گیرند
    ID_Message
    ID_User
    Rate
    DateTime

    و کلید اصلی
    ID_Message
    ID_User
    می باشد.
    سلام با تشکر از شما
    یعنی جدول Message را تبدیل کنم به دو جدول Message و Rate ؟

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    در ضمن شما برای کالا جدول Attribute رو تعریف نکردین(یادآوری)
    موفق باشید
    من که جدول Attribute رو تعریف کردم تو عکسی که گذاشتم جدول Attribute هست آیا مشکلی داره؟

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

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط mahsa_rezai مشاهده تاپیک
    سلام دوستان آقای sadegh.te برای نمایش ویژگی محصولات مختلف مثل موبایل و لپ تاپ و تبلت و لوازم خانگی و... روش زیر را معرفی کرده خواستم بدونم که بنظرتون بهتر نیست که جدول آخر را به تعداد گروه ها ایجاد کنیم؟ مثلا برای موبایل جدول ویژگی موبایل یا برای لوازم خانگی جدول ویژه ی خودش و...
    به این دلیل میگم جدول جدا که برای جستجو سریع تر باشه.

    کالا ( شماره کالا ، نام نوع )
    مشخصات ( شماره مشخصه ، ...)
    ویژگی ها ( شماره کالا ، شماره مشخصه، مقدار )

    مثال :
    کالا( 1001، موبایل )
    ( 1002،ماشین لباس شویی)
    ..........
    مشخصات ( 11001، رنگ )
    ( 11002، صفحه نمایش )
    ..........
    ویژگی ها ( 1001، 11001، سبز)
    ( 1001، 11002، 5 اینچ )


    به این تاپیک نگاهی بندازید بی ارتباط با خواسته شما نیست:
    https://barnamenevis.org/showthread.php?456596

  22. #22

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط mahsa_rezai مشاهده تاپیک
    یعنی جدول Message را تبدیل کنم به دو جدول Message و Rate ؟
    بلی همینطور است.

    نقل قول نوشته شده توسط mahsa_rezai مشاهده تاپیک
    من که جدول Attribute رو تعریف کردم تو عکسی که گذاشتم جدول Attribute هست آیا مشکلی داره؟
    بلی چون شما باید جدول تعریف Attribute رو داشته باشید بعد به آن مقدار دهی کنید.
    مثلا جدولی به شکل زیر:

    ID
    Title
    Nullable
    RegEx
    DataTypeID
    ID_Group

    در این صورت شما به یک گروه کالا یک سری فیلد دینامیک تعریف کردید بعد در جدولی که خودتون دارین باید ID_Attribute رو با ID_Product و مقدار فیلد ذخیره نمایید.

  23. #23
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    بلی چون شما باید جدول تعریف Attribute رو داشته باشید بعد به آن مقدار دهی کنید.
    مثلا جدولی به شکل زیر:

    ID
    Title
    Nullable
    RegEx
    DataTypeID
    ID_Group
    در این صورت شما به یک گروه کالا یک سری فیلد دینامیک تعریف کردید بعد در جدولی که خودتون دارین باید ID_Attribute رو با ID_Product و مقدار فیلد ذخیره نمایید.
    ممنون ولی نمیفهمم که شما چی گفتین.

    یعنی از جدول گروه کلید خارجی بگیرم برای این جدولی که شما تعریف کردین؟

    و کلید اصلی در جدول تعریف شده رو به عنوان کلید خارجی بدم به جدول Attribute ؟

    و یک کلید اصلی جدول Product رو به عنوان کلید خارجی بدم به جدول Attribute?

    اگه میشه یکم بیشتر راجع بهش توضیح بدین ؟ ممنون
    بازم تشکر
    آخرین ویرایش به وسیله mahsa_rezai : دوشنبه 13 بهمن 1393 در 13:30 عصر

  24. #24

    نقل قول: ایجاد جدول برای محصولات مختلف

    بلی همین طوری هست
    شما یک سری Attribute دارین که برای گروه موبایل معنی دار هست مانند نسخه OS و رنگ و سایز صفحه و ...
    همچنین یک سری Attribute هم برای کالایی از جنس میز معنی دار هست مانند ارتفاع، طول، عرض، رنگ و ...
    برای تعریف این فیلد ها باید یک جدول داشته باشید که در پست قبلی اشاره کردم. در این جدول شما Constraint های فیلد رو هم می توانید مشخص کنید مثلا فیلد نوع OS یک موبایل نمی تواند خالی باشد.

    حالا در جدول دیگر باید بگویید که Product شماره 20 مقدار Android را برای Attribute سیستم عامل دارد. پس باید در جدولی ID_Product و ID_Attribute و مقدار آن مشخص شود.

  25. #25
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    بلی همین طوری هست
    شما یک سری Attribute دارین که برای گروه موبایل معنی دار هست مانند نسخه OS و رنگ و سایز صفحه و ...
    همچنین یک سری Attribute هم برای کالایی از جنس میز معنی دار هست مانند ارتفاع، طول، عرض، رنگ و ...
    حالا در جدول دیگر باید بگویید که Product شماره 20 مقدار Android را برای Attribute سیستم عامل دارد. پس باید در جدولی ID_Product و ID_Attribute و مقدار آن مشخص شود.
    با تشکر فراوان از شما
    من توضیحات شما رو رسم کردم اگه میشه ببیند درسته؟
    ارتباط بین جدول گروه و اون جدولی که خودتون گفتین رو Fixed گذاشتم و جدول Attribute را با خط بنفش کشیدم.
    و جدول نظر و امتیاز دهی به نظر را با خط مشکی کشیدم .

    Sample3.png

  26. #26

    نقل قول: ایجاد جدول برای محصولات مختلف

    با سلام
    فیلد Attribute با ID_Fixed چه فرقی دارد؟ فکر کنم یکی باشه! کلید اصلی چیست؟
    در جدول Rate فیلد ID_User نباید باشه تا مشخص بشه کدام کاربر رتبه داده؟ و همچنین کلید اصلی آن ID_Mesage و ID_User نباید باشه؟
    فیلد DataTypeID هم باید از جدول DataType اخذ بشه. چون یک کلید خارجی است.
    اگر مشکلات موجود برطرف بشه تقریبا درسته البته می شه امکانات دیگری هم اضافه کرد.

  27. #27
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    با سلام
    فیلد Attribute با ID_Fixed چه فرقی دارد؟ فکر کنم یکی باشه! کلید اصلی چیست؟
    سلام ببخشید من الان منظور شما رو فهمیدم
    شما میخواید که عنوان را در یک جدول بنویسیم مثلا RAM و Display و... و مقادیر آنها را در جدول دیگر بنویسیم درسته؟
    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    در جدول Rate فیلد ID_User نباید باشه تا مشخص بشه کدام کاربر رتبه داده؟ و همچنین کلید اصلی آن ID_Mesage و ID_User نباید باشه؟
    خوب وقتی که ما کلید اصلی جدول Message رو در جدول Rate کلید خارجی قرار دادیم از طریق همون کلید میشه فهمید که امتیاز مربوط به کدوم نظر هست. درسته؟
    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    فیلد DataTypeID هم باید از جدول DataType اخذ بشه. چون یک کلید خارجی است.
    میشه بگید که جدول DataType برای چی هستش چه فیلد هایی داره؟

    واقعا ممنونم از شما خیلی کمک میکنید.

  28. #28

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط mahsa_rezai مشاهده تاپیک
    سلام ببخشید من الان منظور شما رو فهمیدم
    شما میخواید که عنوان را در یک جدول بنویسیم مثلا RAM و Display و... و مقادیر آنها را در جدول دیگر بنویسیم درسته؟
    دقیقا همین طوره، چون Attribute ها برای هر گروه متفاوتند. و دارای خصوصیاتی هستند که بایستی برای آنها مشخص کنیم. برای همین باید محلی برای تعریف آن داشته باشیم.

    نقل قول نوشته شده توسط mahsa_rezai مشاهده تاپیک
    خوب وقتی که ما کلید اصلی جدول Message رو در جدول Rate کلید خارجی قرار دادیم از طریق همون کلید میشه فهمید که امتیاز مربوط به کدوم نظر هست. درسته؟
    در جدول Message کاربر نظر دهنده مشخص می شود ولی ما می خواهیم امتیازهای یک نظر را هم داشته باشیم. برای این می بایست بدانیم کدام کاربران برای پیغامی که آقای x قرارداده امتیاز داده اند.
    با این کار یک کاربر بیش از یک بار نمی تواند برای یک پیغام امتیاز بدهد.


    نقل قول نوشته شده توسط mahsa_rezai مشاهده تاپیک
    میشه بگید که جدول DataType برای چی هستش چه فیلد هایی داره؟
    در جدول DataType شما نوع داده های تعریف شده در سیستم را مشخص می کنید به عنوان مثال برای Attribute ظرفت در گروه کالای RAM مقدار Hello نا معتبر است و باید مقدار عددی وارد شود برای این کار در جدولی که Attribute های یک گروه را تعریف می کنید می بایست نوع داده آن را هم مشخص کنید.

    ID
    Title

    فیلد های آن می تواند باشد. البته می توانید این رو به صورت Enum هم در نظر بگیرید. و برای آن جدولی طراحی نکنید.

  29. #29
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    بازم ممنون
    فیلد های Nullable و RegEx برای دریافت چه مقادیری هستند؟

    بنظر جدول DataType بی فایده میاد چون وقتی که ما فیلد های جدول را تعریف میکنیم نوع مقادیر دریافتی آنها را مشخص میکنیم مثلا int یا nvarchar و... ؟

    بازم تشکر

  30. #30

    نقل قول: ایجاد جدول برای محصولات مختلف

    نه دیگه در مدل فیلد های دینامیک یا همان EAV فیلد توسط Metadata ی جدول دیتابیس تعریف نمی گردد بلکه توسط رکورد هایی که در جدول Attribute تعریف می کنید تعریف می شود و سپس مقدار آن در جدول دیگری ذخیره می شود (همان جدولی که AttributeValue را دارید). در پست های اولیه هم مطرح شد که باید consistency داده های فیلد های پویا به صورت Programming توسط تریگر حفظ شود. برای این کار می بایست نوع داده، طول آن در جدول Attribute نگهداری شود که هنگام درج مقدار برای هر کدام از Attribute ها بتوان Constraint های اولیه ره چک کرد. اگر منظور من رو متوجه نمی شوید دیاگرام هاش رو طراحی کنم و بفرستم.

    Attribute
    --------------------
    AttributeID
    GroupID
    Title
    DataTypeID
    Len
    RegEx




    Group
    ------------------
    GroupID
    Title



    Product
    ----------------------
    ProductID
    GroupID
    .....



    ProductAttribute
    ---------------------------
    ProductID
    AttributeID
    Value

    همان طور که می بینید برای Value که مقدار Attribute را نگهداری مکند DataType مشخصی تعریف نکردیم. این موضوع در جدول اول تعریف شده است و توسط تریگر کنترل می شود.

  31. #31
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    سلام تشکر واقعا فهمش برام خیلی سخت شد

    چرا باید با تریگر کنترلش کنیم؟

    مگه تریگر بعد از عمل Insert یا Edite یا Delete کار نمیکنه؟ خوب ما چطور باید قبل از Insert این مقادیر را کنترل کنیم؟

    جدول DataType شامل چه فیلدهایی میشود؟

    آیا باید کلید اصلی DataType را به عنوان کلید خارجی به جدول Attribute که عنوان ها در اون تعریف میشه بدهیم؟

    اگه جدول DataType را نگذاریم و با کد نویسی در داخل سایت مقدارها را کنترل کنیم مشکلی پیش می آید؟

    اگه میشه یکم مسئله رو باز تر کنید. بازم تشکر
    آخرین ویرایش به وسیله mahsa_rezai : سه شنبه 14 بهمن 1393 در 13:06 عصر

  32. #32

    نقل قول: ایجاد جدول برای محصولات مختلف

    شما می توانید همه چیز را در برنامه کنترل کنید ولی اگر در برنامه باگی داشته باشید احتمال داشتن داده اشتباه خواهد بود. یا اگر پشتیبان نرم افزار داده ای را از طریق Management Studio وارد کند احتمال هر گونه اشتباهی خواهد بود. (البته این سلیقه شخص من هست و اجباری نیست)

    جدول دیتا تایپ می تواند ID و Title داشته باشد. البته این جدول می تواند حذف شود(به صورت Enum تعریف شود)

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


    CREATE TRIGGER trigger_name on TableName Instead of Insert,Update,Delete
    as
    ....

  33. #33
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    ممنون

    بنظر شما به چه صورت بهتره که تعریف بشه Enum با یک جدول جدا؟

    فیلد Title در جدول DataType چه مقداری دریافت میکند؟

    آیا برای کنترل جدول DataType فقط یک تریگر لازم است؟ که بفهمیم از چه نوعی هست.

    فیلد های Len و RegEx چه مقادیری دریافت میکنند؟

    آیا اگر توضیحاتی را که شما گفتید در ER اعمال کنم کار بخش محصولات تمام میشود؟ یا با هم جای کار دارد؟

    ببخشید سوالاتم زیاد شد. تشکر از شما که با حوصله پاسخ میدید.

  34. #34

    نقل قول: ایجاد جدول برای محصولات مختلف

    ترجیح من هر دو یعنی هم Enum برای کنترل Constraint سمت نرم افزار و Database برای نگهداری اسامی نوع داده ها که بعدها راحت تر متوجه کد های دیتاتایپ بشویم مثلا ممکن است به جای نوع داده متنی عدد 100 رو در نظر بگیرید برای مشخص شدن معنی عدد 100 بهتر هست که در جدول مشخصی ذخیره گردند. ولی این جدول همواره ثابت خواهد بود و هیچ Insert و Update نخواهد داشت.

    فیلد Title نوع داده را مشخص می کند که به کاربر نشان می دهید مثلا (متنی، عدد، تاریخ، عکس، ایمیل، وب سایت، پول و ....) این اسامی باید برای کاربر قابل فهم باشد مثلا کلمه رشته به جای متنی استفاده نشود.

    فیلد Len طول مقدار را مشخص می کند مثلا شما فیلد x را تعریف میکنید باید بگویید متنی به طول 20 کاراکتر و یا فیلد y عددی به طول 19 رقم البته می توانید خصوصیات دیگری نیز این جا بر حسب نیاز تعریف کنید. مانند تعداد رقم اعشار و ...


    فیلد RegEx برای مشخص کردن یک Pattern برای مقدار فیلد می باشد مثلا برای ایمیل تعریف میکنید متنی با RegEx خاص آن که ورودی کاربر باید با آن Pattern مطابقت کند.

    بلی تقریبا تمام می شود البته ریزکاری هایی هم می توان انجام داد مثلا یک فیلد از نوع انتخابی باشد و مقادیر آن باید از یک جایی خوانده شده و کاربر انتخاب نماید.

  35. #35
    کاربر تازه وارد آواتار mahsa_rezai
    تاریخ عضویت
    بهمن 1393
    محل زندگی
    تهران
    پست
    56

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    ترجیح من هر دو یعنی هم Enum برای کنترل Constraint سمت نرم افزار و Database برای نگهداری اسامی نوع داده ها که بعدها راحت تر متوجه کد های دیتاتایپ بشویم مثلا ممکن است به جای نوع داده متنی عدد 100 رو در نظر بگیرید برای مشخص شدن معنی عدد 100 بهتر هست که در جدول مشخصی ذخیره گردند. ولی این جدول همواره ثابت خواهد بود و هیچ Insert و Update نخواهد داشت.
    ممنون
    ولی اگه ممکنه یه دیاگرام از این بخش DataType و Enum بادیگر جداول به من بدید که متوجه بشم؟ ممنون

    نمیدونم چرا هر کاری میکنم نمیتونم که این قسمت رو درک کنم که برای هر فیلد نوعش را باید مشخص کنیم خوب فرضا چرا از همون اول برای جدول Attribute و Attribute_val مقدار nvarchar(max) را در نظر نمیگیریم که هر نوع داده ای داخل اون بتونیم بریزیم؟

    اگه میشه این قسمت رو بگید که من متوجه بشم ممنون

  36. #36

    نقل قول: ایجاد جدول برای محصولات مختلف

    نقل قول نوشته شده توسط NanShekari مشاهده تاپیک
    منظور من این هست که ID_Group حذف شود. چون با داشتن ID_Brand میتوان به گروه آن دسترسی پیدا کرد.

    در مورد Image هم می توانید جدولشو جدا کنید هم این که با خصوصیت TEXTIMAGE_ON در هنگام Create Table فقط FileGroup آن را تغییر دهید (در این شرایط MSSQL به طور اتوماتیک داده های از جنس text, ntext, image, xml, varchar(max), nvarchar(max), varbinary(max) را در FileGroup مشخص شده نگهداری می نماید.

    و یا این که از تکنیک FileTable و مواردی از این دست استفاده نمایید.


    سلام
    کاربر گرامی در مورد File Table سوالی اینجا مطرح کردم ، اگر امکان داره پاسخ بدین. خیلی ممنون میشم. پیشاپیش تشکر می کنم.

  37. #37

    نقل قول: ایجاد جدول برای محصولات مختلف

    سلام از سایت خوبتون خیلی ممنونم لطف کنید جدول یک چاپخانه رو برام.بگید خیلی ممنونم

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

  1. سوال: ایجاد جدول برای نظرات و پاسخ های اخبار وب سایت
    نوشته شده توسط i-php-i در بخش PHP
    پاسخ: 10
    آخرین پست: دوشنبه 08 تیر 1394, 19:21 عصر
  2. سوال: ایجاد جدول مقایسه محصولات
    نوشته شده توسط shaparak631 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 01 تیر 1393, 23:39 عصر
  3. ایجاد جدول برای سایت فوتبال
    نوشته شده توسط ebrahim.n65 در بخش T-SQL
    پاسخ: 0
    آخرین پست: شنبه 28 آبان 1390, 12:32 عصر
  4. ایجاد جدول مناسب برای اخبار؟؟؟
    نوشته شده توسط marzieh behfar در بخش SQL Server
    پاسخ: 2
    آخرین پست: چهارشنبه 16 فروردین 1385, 21:53 عصر
  5. ایجاد بخشهایی برای محصولات VS 2005
    نوشته شده توسط علیرضا مداح در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 1
    آخرین پست: شنبه 10 اردیبهشت 1384, 02:54 صبح

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

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