نمایش نتایج: از شماره 1 تا 9 , از مجموع 9

موضوع: پیاده سازی یه تیبل Mysql

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    عضو انجمن rezaonline.net آواتار ها
    تاریخ عضویت
    Apr 2012
    محل سکونت
    Sanandaj | Tehran
    نوشته ها
    939
    تشکر تشکر کرده 
    1,556
    تشکر تشکر شده 
    2,338
    تشکر شده در
    1,230 پست

    پیش فرض پاسخ : پیاده سازی یه تیبل Mysql

    نقل قول نوشته اصلی توسط mehran-b نمایش پست ها
    سلام بر دوستان و اساتید محترم

    من یه تیبل دارم با یه تا ستون به شکل زیر:
    جدول مربوط به لغت نامه ای با حدودا 18 هزار کلمه است که توی ستون word خود واژه نوشته شده و توی ستون meaning مترادف واژه.

    سوال اینه که کدوم ستون رو یونیک کنم و کدوم ستون رو پرایمری کنم که بالاترین پرمورمنس رو داشته باشه این تیبل؟

    تشکر
    سلام
    اگر به ازای هر واژه انگلیسی یک واژه فارسی نوشته شده میتونید فیلد انگلیسی رو یونیک بذارید
    اما در کل پیشنهاد میکنم هیچ کدام از دو فیلد رو یونیک نذارید و فقط index بذارید .

    به ازای هر کلمه انگلیسی اگر چند کلمه فارسی بود برای تک تکشون رکورد ایجاد کنید ، اینطوری میتونید برای فارسی به انلگیسی و انگلیسی به فارسی از دیتابیستون استفاده کنید.
    مورد بعدی اینکه دیتاتایپ مناسب varchar هست ، از text استفاده نکنید .

    میتونید ترکیبی روی هر دو فیلد هم یونیک بذارید .

    - - - Updated - - -

    بعد یه ستون رو که هم پرایمری میکنیم و هم یونیک چه اتفاقی براش میوفته؟ فرق این دو تا چیه؟
    فیلدی که کلید اصلی هست قطعا یونیک هست پس نیازی به یونیک کردن ندارد
    فیلدی که یونیک هست بعنوان کلید رزرو میتوان استفاده کرد

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

    وقتی یه چیزی رو یونیک میکنیم چه اتفاقی میوفته از لحاظ پشت پرده ای مظنورمه؟
    ایندکس گذاری چه یکتا باشه یا نباشه ، موجب سرعت در واکشی (select) میشود ، فیلدهایی که یونیک میشوند باید یکتا باشند ، شما نمیتونید دو رکورد تکراری درج کنید دیتابیس خطا میدهد .

  2. تعداد تشکر ها ازrezaonline.net به دلیل پست مفید


  3. #2
    کاربر اخراج شده
    تاریخ عضویت
    Aug 2017
    نوشته ها
    37
    تشکر تشکر کرده 
    43
    تشکر تشکر شده 
    6
    تشکر شده در
    5 پست

    پیش فرض پاسخ : پیاده سازی یه تیبل Mysql

    نقل قول نوشته اصلی توسط rezaonline.net نمایش پست ها
    سلام
    اگر به ازای هر واژه انگلیسی یک واژه فارسی نوشته شده میتونید فیلد انگلیسی رو یونیک بذارید
    اما در کل پیشنهاد میکنم هیچ کدام از دو فیلد رو یونیک نذارید و فقط index بذارید .

    به ازای هر کلمه انگلیسی اگر چند کلمه فارسی بود برای تک تکشون رکورد ایجاد کنید ، اینطوری میتونید برای فارسی به انلگیسی و انگلیسی به فارسی از دیتابیستون استفاده کنید.
    مورد بعدی اینکه دیتاتایپ مناسب varchar هست ، از text استفاده نکنید .

    میتونید ترکیبی روی هر دو فیلد هم یونیک بذارید .

    - - - Updated - - -


    فیلدی که کلید اصلی هست قطعا یونیک هست پس نیازی به یونیک کردن ندارد
    فیلدی که یونیک هست بعنوان کلید رزرو میتوان استفاده کرد

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


    ایندکس گذاری چه یکتا باشه یا نباشه ، موجب سرعت در واکشی (select) میشود ، فیلدهایی که یونیک میشوند باید یکتا باشند ، شما نمیتونید دو رکورد تکراری درج کنید دیتابیس خطا میدهد .
    هر دو ستون word و meaning فارسی هستند و جستجو در دیتابیس فقط بر اساس واژه های توی ستون word انجام میشه یعنی word جستجو میشه و meaning گرفته میشه.

    با توضیح بالا نظرتون چیه؟

    به شکل تصویر بالا مورد تایید شما هست؟
    ویرایش توسط mehran-b : August 12th, 2017 در ساعت 01:06

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 2
    آخرين نوشته: July 7th, 2015, 22:54
  2. پاسخ ها: 16
    آخرين نوشته: January 15th, 2015, 21:17
  3. پاسخ ها: 3
    آخرين نوشته: January 13th, 2014, 21:29
  4. وارد کردن نسخه پشتیبان پرحجم MySQL با BigDump
    توسط TruthPraiser در انجمن اسکریپت های دیگر
    پاسخ ها: 0
    آخرين نوشته: November 20th, 2009, 17:49

مجوز های ارسال و ویرایش

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