سلام
اگر به ازای هر واژه انگلیسی یک واژه فارسی نوشته شده میتونید فیلد انگلیسی رو یونیک بذارید
اما در کل پیشنهاد میکنم هیچ کدام از دو فیلد رو یونیک نذارید و فقط index بذارید .
به ازای هر کلمه انگلیسی اگر چند کلمه فارسی بود برای تک تکشون رکورد ایجاد کنید ، اینطوری میتونید برای فارسی به انلگیسی و انگلیسی به فارسی از دیتابیستون استفاده کنید.
مورد بعدی اینکه دیتاتایپ مناسب varchar هست ، از text استفاده نکنید .
میتونید ترکیبی روی هر دو فیلد هم یونیک بذارید .
- - - Updated - - -
فیلدی که کلید اصلی هست قطعا یونیک هست پس نیازی به یونیک کردن نداردبعد یه ستون رو که هم پرایمری میکنیم و هم یونیک چه اتفاقی براش میوفته؟ فرق این دو تا چیه؟
فیلدی که یونیک هست بعنوان کلید رزرو میتوان استفاده کرد
یه مثال ساده اینکه
مثلا فرض کنید شما یک جدول برای کاربران دارید ، توی سیستمون به هر کاربر یک id میدید این میشه کلید اصلی
هر کاربر هم ملزم کردید که شماره ملی شو وارد کنه ، قطعا شماره ملی هر کاربری یکتاست ، پس میتونید از شماره ملی هم بعنوان کلید اصلی استفاده کنید اما ترجیحا توی سیستم خودتون از id که تعریف میکنید واسه کلید اصلی استفاده میکنید و سایر فیلد های یکتا بعنوان کلید رزور مورد استفاده قرار میگیرند .
ایندکس گذاری چه یکتا باشه یا نباشه ، موجب سرعت در واکشی (select) میشود ، فیلدهایی که یونیک میشوند باید یکتا باشند ، شما نمیتونید دو رکورد تکراری درج کنید دیتابیس خطا میدهد .وقتی یه چیزی رو یونیک میکنیم چه اتفاقی میوفته از لحاظ پشت پرده ای مظنورمه؟