ورود

View Full Version : نرمال سازی



.:.NOTHING.:.
سه شنبه 17 خرداد 1384, 02:02 صبح
سلام
یه سوال از کسانی که به صورت حرفه ای اس کیو ال سرور کار میکنن دارم اونم اینه که اگر من بخام که یک بانک اطلاعاتی ایجاد کنم که مثلا یک سری مقاله رو نگهداری کنه و دوباره بخوام که این مقالات به دو صورت فارسی و انگلیسی نگهداره بشن چکار باید بکنم آیا باید برای مقالات انگلیسی یک جدول و برای مقالات فارسی یک جدول دیگه ایجاد کنم و بین اونها یک رابطه ی یک به یک ایجاد کنم یا اینکه هر دو در یک جدول باشن و یک فیلد برای متن فارسی و یک فیلد برای متن انگلیسی ایجاد بشه کدام بهتره اگر راه حل های دیگری هم به ذهنتون میرسه لطفا راهنمایی کنین.

در ضمن بانک من الان به این صورت که یک فیلد انگلیسی و یک فیلد فارسی دارم و به اینصورت اونارو لود میکنم


CREATE PROCEDURE About_Text
(@Lan nchar(5))
AS
IF(@Lan='EN')
BEGIN
SELECT EN_About FROM TBL_ABOUT
END
ELSE
IF(@Lan = 'FA')
BEGIN
SELECT FA_About FROM TBL_ABOUT
END

البته این مربوط به جدول اصلی نیست ولی روشش یکیه

ممنون :flower:

majid_afra222
سه شنبه 17 خرداد 1384, 09:30 صبح
سلام
البته این یه طرح سادس که میتونی با توجه به نیازهات توسعه اش بدی :
اول اینکه نیاز به جدولی برای نگهداری موضوعات مرتبط با مقالات داری. شامل : شماره موضوع٬‌نام موضوع
اگه مقالات دارای چند بخش می شوند٬‌یعنی بعضی از مقالات یک بخش دارند٬ بعضی 2 و ... بهتر است یک جدول برای نگهداری اطلاعات اصلی مقاله : شماره مقاله٬‌شماره موضوع٬ نویسنده٬ تاریخ نشر٬‌محل ارایه٬‌زبان مقاله و ... .
بعد هم به یک جدول برای نگهداری اصل مقالات.

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

نرمال سازی بانک اطلاعاتی بدون داشتن نیازهای اولیه سیستم و بایدها یه کار ذهنی بیشتر نیست که ارزش زیادی هم نداره٬ مثل همین چیزی که من نوشتم

با اینحال امیدوارم بدردت بخوره.

AminSobati
سه شنبه 17 خرداد 1384, 10:20 صبح
دوست عزیزم،
دلیلی خاصی وجود نداره که اونها رو در دو جدول جدا نگهداری کنین. اینطوری ممکنه بعضی انعطاف پذیریها در Query گرفتن رو از دست بدین