ورود

View Full Version : روش های نام گذاری Table ها ، Field ها و Sp ها و ...



saeed.samiee
یک شنبه 27 خرداد 1386, 20:19 عصر
با سلام خدمت همه دوستان و اساتید گرامی
من یک برنامه نویس غیر حرفه ای هستم و فقط برای رفع نیازهای خودم و جلوگیری از کم هوشی ام گاهی برنامه نویسی هم میکنم. اینو فقط جهت اطلاع گفتم .
امروزیک برنامه نویس رو ملاقات کردم که خیلی برای برنامه اش زحمت کشیده بود ولی چون از هیچ روش نامگذاری برای Table ها ، Field ها و Sp ها و ... استفاده نکرده بود شدیدا دچار زحمت مضاعف شده بود البته برنامه اش رو حتما خریداری میکنم .
من به اون روش هایم را توضیح دادم علی اظاهر خوشش آمد . با خودم گفتم حتما برنامه نوس های دیگر روش های بهتری هم دارن و من از اونها بی اطلاع هستم . من روش های خودم رو که بیشترش توصیه های دوست عزیزم مهندس باقری است رو مینویسم شما هم روشها تون رو بنویسید مطمئن باشید حتما مفیده.

برای هر سیستم یک نام سه حرفی انتخاب میکنم حتی المقدور با معنی و در کل پروژه یکتا و اول همه Table ها ی اون سیستم میکذارم مثل ACC برای حسابداری INV برای انبار و ..
AccAccounts و AccSanadHds و AccSanadBys

تمام جدول ها به حرف S باید ختم بشن کنایه از اینه که جدول ها تک رکوردی نیستند
مثل PubCountries

برای هر Table یک نام سه حرفی و با حروف بزرگ انتخاب میکنم که البته در کل پروژه یکتا است و به آخر تمام فیلد های همون جدول وصل میکنم با این کار تمام فیلدها در کل پروژه یکتا میشه
فیلد های AccAccounts میشه SerialNoACS و AccountCodeACS و ..
با این کار هیچ وقت نیاز نیست نام یک جدول رو قبل از نام فیلد توی دستورات sql استفاده کنید.

فیلد های مرتبط جداول دیگر رو با نام کامل فیلد مرتبط و سه حرف اختصاصی جدول خودش نام کذاری میکنم مثلا برای جدول آرتیکل های سند AccSanadBys فیلد کد حساب این جوری میشه AccountCodeAcsSBS و شرحش ArticleDescSBS

در تمام جدول ها دو فیلد UserCodeXXXو TimeStampsXXX دارن که اولی کاربر اضافه کننده یا Edit کننده این رکورد است و دومی تاریخ و ساعت سرور است .

تمام جداول مهم یک نسخه Bak هم دارن و با همون نام جدول و یک Bak بعد از نام اختصاصی سیستم و یک Z هم اولش اضافه کردم تا دائما جلو چشمم نباشند مثل ZAccBakAccounts
و بجای سه حرف اختصاصی جدول اصلی چهار حرف دارن که سه حرف قبلی با یک حرف B مثل AccountCodeBACS

توی Sp های اصلاح و حذف جداول اصلی قبل از اینکه رکورد تغییر و یا حذف بشه یک نسخه از اون توی جدول Bak اضافه میشه با این کار سابقه رکورد رو دارم و برای تشنج زدائی محیط کار خیلی مفیده . البته باید هر چند وقت این جدول رو پاکسازی کرد و صد البته منحصرا از SP ها برای ارتباط با جداول استفاده کرد.

سعی میکنم توی جداول Bak کد چیزی رو ثبت نکنم شرح اونو ثبت میکنم مثلا بجای کد کاربر قبلی از نام اون استفاده میکنم UserNameOldBACS و بجای کد کاربر بایگانی کننده نام اون رو ثبت میکنم UserNameBACS برای اینکه نمی خواهم رکورد های این جداول به بقیه جداول وابسته باشه و مستقلا این رکوردها قابلیت ردیابی رو داشته باشند

فعلا بسه آخه میترسم یک ساعته بدیهییات رو توضیح داده باشم .

SYNDROME
یک شنبه 27 خرداد 1386, 21:58 عصر
با سلام
قوانین جالبی برای نامگذاری گفتی.
خیلی جالب بود.
ولی برنامه نویس با رعایت این همه قانون کف نمی کنه.:کف:
بعضی جاها هم نام فیلد خیلی طولانی می شود.مثل "AccountCodeAcsSBS "
همه قانونها خوب بود ولی اگر کمی سادتر باشد بهتر است و در بعضی جاها هم باید انعطاف داشته باشد و دست برنامه نویس را برای مانور باز بگذارد.
با تشکر

AminSobati
سه شنبه 29 خرداد 1386, 00:50 صبح
اگر تمایل داشتین از استاندارد ISO 11179 برای نام گذاری مطلع بشین، کتاب آقای Joe Celko رو مطالعه کنین:
J O E C E L K O ’ S SQL PROGRAMMING STYLE
ایشون جزو هیئت استاندارد SQL هستن، یعنی کسی که قوائد استاندارد SQL رو وضع میکنه!

mohsen.baradaran
سه شنبه 29 خرداد 1386, 20:39 عصر
با سلام
روشهای بسیار جالبی رو پیشنهاد دادین وخیلی به دردم خورد
متشکرم.:لبخندساده: