ببخشید که دیر شد. از دیروز تا حالا دارم اینو مینویسم. قبلا یکی طراحی کرده بودم. حالا هم که رفتم سفر یکی دیگه طرحی کردم. حالا هردوشونو یکی کردم و نوشتم. برا همین طول کشید. هنوز مشکل داره ولی تقریبا کامله.سرم داره منفجر میشه
خب من یه همچین دیتابیسی رو طراحی کردم. ببینید چطوره. سعی کردم همه مواردو توش رعایت کنم. بازم اگه کم و کاستی یا زیادیی داره بگید.
توی این دیتابیس 21 تا جدول داریم (16ش حین عملیات حذف شد.):
1-PLangs : زبانهای برنامه نویسی
2-Langs : زبانها
3- Funcs : اطلاعات توابع
4- FuncParameters : پارامترهای ورودی توابع
5- Consts : اطلاعات ثابتها
6- Structs : اطلاعات ساختارها (همون Type توی ویبی6)
7- StructItems : آیتم های ساختارها
8- FuncRStructs : ساختار های مرتبط با توابع
9- RConsts : ثابتهای مرتبط با توابع یا ساختارها
10- RFuncs : توابعی که با هم ارتباط دارند
11- Groups : گروههای موضوعی
12- GroupsRFuncs : توابع گروهها
13- Examples : مثالها
14- ExamplesR : توابع، ساختارها و ثابتهای به کار رفته در مثالها
15- WinDatatypes : انواع داده های ویندوز
17- RDatatypes : نوع داده های مرتبط
18- Favorites : توابع، ساختارها و ثابتهای برگزیده ی کاربر
19- UserNotes : یادداشت های کاربر برای هر تابع،ساختار یا ثابت
20- Descs : همه توضیحات. مثل توضیح تابع، ثابت، خروجی تابع و ...
21- DescTypes : انواع توضیحات
22- UserChanges : تغییراتی که کاربر توب دیتابیس انجام داده
============================================ا-
خب حالا جدولا و فیلدا رو توضیح میدم:
توجه: همه جدولا یه فیلد ID دارند برا همین دیگه نگذاشتمشون.
============================================ا-
1-PLangs
name,shortname,...
اینجا اطلاعات مریوط به زبونای برنامه نویسی ذخیره میشهو اسم کامل زبان و اسم کوتاه شدش. مثل Microsoft Visual Basic 6 و VB6. اون سه نقطه هم فیلدای زیره. این فیلدا همون شیوه تعریف ها رو مشخص میکنند:
funcSYN, typeSYN, constSYN, funcelementsSYN, typeelementSYN, commentSYN, varargSYN, funcVAL,subVAL, byrefVAL, byvalVAL
بعدا در مورد اینا صحبت میکنیم.
2-Langs
name,rtl,fileaddress
اینم معلومه. اطلاعات زبان. rtl هم مشخص میکنه که راست به چپ هست یا نه. fileaddress هم آدرس فایلیه که متن توش هست. میتونیم کل متنو توی دیتابیسم ذخیره کنیم نظرتون چیه؟
3- Funcs
name, libname, PrimaryName, returntype, source, comment
اطلاعات تابع. این comment هم یه توضیحه که میتونید به آخر تابع اضافه کنید.
4- FuncParameters
funcid, refrenced, name, datatype, parameter, rank
خب اینم اطلاعات پارامترهای تابع.parameter یه پارامتر احتمالی رو نگه میداره. rank هم ترتیبشونو.
5- Consts
name, datatype, value, comment, libname
اطلاعات ثابتها. بعضی زبونا میتونن براشون نوع تعیین کنند. برا همین datatype هم گذاشتم.
6- Structs
name, libname, comment
اطلاعات ساختارها (type).همین.
7- StructItems
name, comment, datatype, parameter, rank
اجزای یه ساختار.دونه دونه اینجا ثبت میشند.
8- FuncRStructs
funcid, structid
ساختارهای به کار رفته در توابع.
9- RConsts
Pid, constid, type
ثابتهای به کار رفته در توابع یا ساختارها. این PID کد ساختار یا تابعه و type هم مشخص میکنه که اون کد مال تابعه یا ساختار.
10- RFuncs
f1id, f2id
توابع مرتبط.
11- Groups
name, desc
گروههای موضوعی. میتونید یه توضیح هم براشون بنویسید.
12- GroupsRFuncs
groupid, funcid
توابع هر گروه. یه تابع میتونه توی دو تا گروه باشه.
13- Examples
writer, title, plangid, Example
مثالها. تاریخ هم میخواد؟
14- ExamplesR
Pid, exampleid, type
چیزایی که توی یه مثال به کار رفتند (ساختارها و توابع و ثابتها). Pid کدشونه و type مشخص میکنه که اون کد مال تابعه یا ساختار یا ثابت.
15- Datatypes
name, refrenced, libname, declare, desc
این جدول حاوی تمامی متغیرهای سیستمیه. من انواع نوعهای ویندوزی رو دارم. ولی فکر کنم فقط بدرد WinXP32 بخوره؟ برای بقیشون چی؟
17- RDatatypes
Aplangid, Bplangid, Adatatypeid, Bdatatypeid
نوع داده های معادل.
18- Favorites
Pid, type
برگزیده ها. Pidو type دیگه میدونید چیند.
19- UserNotes
Pid, type, note
یادداشت کاربر. برای هر چیزی جداگونه.
20- Descs
text, desctypeid, langid ,extraID
خب تمامی توضیح ها اینجا ذخیره میشند. مثل توضیح عملکرد تابع، توضیح خروجی تابع، توضیح کار ثابت و ... . ExtraID هم برای توضیحات مربوط به پارامتر های تابعه که مشخص میکنه چندمین پارامتر.
21- DescTypes
name, desc
نوع توضیح. مثلا نوع توضیح تابع یا خروجی تابع یا ثابت یا یه پارامتر و ... .
22- UserChanges
اینجا قراره تمامی تغییراتی که کاربر توی دیتابیس به وسیله نرمافزارمون میده ثبت بشه تا وقتی کاربر دیتابیسو برامون فرستاد بفهمیم چیکارا کرده (مشارکت عمومی)
هنوز فکری براش برنداشتم.
خب. ؟ ؟؟ ؟؟؟ ؟؟؟؟ ؟؟؟ ؟؟ ؟