برگزیده های پرشین تولز

سوال و جواب در مورد ساختار فوروم ها

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,671
لایک‌ها
67
سن
37
محل سکونت
نصف جهان
در این تاپیک به بررسی ساختار فوروم ها و نحوه ایجاد آنها خواهیم پرداخت


توضیح مدیر :

این بخش قبلا در تالار ASp.Net بوده و به این بخش انتقال داده شده است
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,284
لایک‌ها
17
سن
39
محل سکونت
North Pole
فوروم با asp.net که زیاده ، مثلا www.comunityserver.org/ دیگه آخرشه ، نمونش فوروم سایت www.asp.net اه که همین برنامست ، سرسش اپن اپن دیگه فکر نکنم باشه ولی با فارسی کردنش مشکل نخواهی داشت . فقط لینکش رو باید بذاری باشه .
توی سایت codeproject چندتایی میتونی پیدا کنی که برای یاد گرفتن و مطالعه راحت تر هستند .
فوروم دانت نت نیوک www.dotnetnuke.com هم بدک نیست که در قالب یک ماژول برای فریم ورک اصلی دات نت نیوک اه . البته خیلی هم تعریفی نداره کامیونیتی سرور از همه چیر بهتره !

وای اما اینکه فق باید توی دیتابیس باشه ، میتونی همه پست هات رو توی یه XML ذخیره کنی که خوب البته MS SQL یه چیز دیگست و اصلا با یه فایل XML قابل مقایسه نیست . و قدرت SQL رو دست کم نگیر خیل بیشتر از اونی که بشه توش چیز ریخت جا داره ;)
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,671
لایک‌ها
67
سن
37
محل سکونت
نصف جهان
به نقل از H_R :
فوروم با asp.net که زیاده ، مثلا www.comunityserver.org/ دیگه آخرشه ، نمونش فوروم سایت www.asp.net اه که همین برنامست ، سرسش اپن اپن دیگه فکر نکنم باشه ولی با فارسی کردنش مشکل نخواهی داشت . فقط لینکش رو باید بذاری باشه .
توی سایت codeproject چندتایی میتونی پیدا کنی که برای یاد گرفتن و مطالعه راحت تر هستند .
فوروم دانت نت نیوک www.dotnetnuke.com هم بدک نیست که در قالب یک ماژول برای فریم ورک اصلی دات نت نیوک اه . البته خیلی هم تعریفی نداره کامیونیتی سرور از همه چیر بهتره !

وای اما اینکه فق باید توی دیتابیس باشه ، میتونی همه پست هات رو توی یه XML ذخیره کنی که خوب البته MS SQL یه چیز دیگست و اصلا با یه فایل XML قابل مقایسه نیست . و قدرت SQL رو دست کم نگیر خیل بیشتر از اونی که بشه توش چیز ریخت جا داره ;)

مرسی عزیزم

حالا یه چیزی :

خودم هم به فکر XML بودم ولی اگه XML بشه search کردن توی اون دردسره !!!

نظر شما چیه ؟


این www.comunityserver.org که باز نمیشه !!!!

مطمئنی آدرسش درسته ؟
 

SherlockHolmes

کاربر قدیمی پرشین تولز
تاریخ عضویت
15 می 2004
نوشته‌ها
3,057
لایک‌ها
819
XML ؟
حتما شوخی میکنید!!چطوری میخواید از یه فایل XML با چندین هزار پست کوئری بگیرید؟!
حتما با دیتا ست!!؟
که از لحاظ پرفورمنس به شوخی بیشتر شبیهه!!
در ضمن به طور حدسی میتونم بگم هر 10000 تا پست توی 20 مگ دیتا بیس جا بشه!
 

SherlockHolmes

کاربر قدیمی پرشین تولز
تاریخ عضویت
15 می 2004
نوشته‌ها
3,057
لایک‌ها
819
اگه واقعا میخواید روی فروم کار کنید میتونیم تو همین تاپیک با هم بحث کنیم!!
 

xalerebvar

Registered User
تاریخ عضویت
11 مارس 2006
نوشته‌ها
68
لایک‌ها
0
محل سکونت
Visual Studio 2005
بچه ها سلام

از دوستاي محترم بابت جوابشون ممنونم
اگه مي شه اين پستو بذاريم واسه طراحي forumها
من كه واقعا در اين مورد چيزي نمي دونم
هر كي بلده بسم الله
فقط جون خودتون اگه مطلبي رو ميدونيد يه چيزي بذاريد تا ماهم يه حالي ببريم

ممنون از همهتون

where there is a love
there is agod
where there is a god

there is NO NEED
;) ;)
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,284
لایک‌ها
17
سن
39
محل سکونت
North Pole
به نقل از EndOfCsharp :
مرسی عزیزم

حالا یه چیزی :

خودم هم به فکر XML بودم ولی اگه XML بشه search کردن توی اون دردسره !!!

نظر شما چیه ؟


این www.comunityserver.org که باز نمیشه !!!!

مطمئنی آدرسش درسته ؟
XML اصلا پیشنهاد مناسبی نیست ! گفتم که MS SQL اصلا با یه دیتابیس متنی (XML ) قابل مقایسه نیست ! هم کاربربش راحت تره ، خم کلی امکانات بهت میده و هم توی حجم بالای داده (خیلی بالا تر از اونی که تصور کنی ) به راحتی جواب میده !

اینم آدرس درست http://communityserver.org ببخشید من یدونه m گذاشته بودم !
 

SherlockHolmes

کاربر قدیمی پرشین تولز
تاریخ عضویت
15 می 2004
نوشته‌ها
3,057
لایک‌ها
819
برای طراحی فروم باید طبق معمول همه نرم افزار ها Entity ها مشخص بشه!!البته قبلش باید شما کاری رو که میخواید بکنید رو بگید یعنی سناریو کارتون رو بنویسید و بعد بشینیم از توش Entity هاش رو استخراج کنیم!
برای اولین کار شما لطفا سناریو کارتون رو بنویسید. و اینجا بزارید.
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,671
لایک‌ها
67
سن
37
محل سکونت
نصف جهان
بچه ها ممنون از جوابهاتون

تنها چیزی که باعث میشه آدم به فکر چیزی غیر از دیتابیس بیفته این استادهای دانشگاه هستن که مدام بحث پرفورمنس میکنن و آدم رو الکی میترسونن !!!

اگه واقعا اینطوری باشه که شرلوک میگه و 10000 تا پست توی 20 مگابایت جا بشه که مشکل حله !!! من فکر میکردم به گیگابایت و ... بکشه !!!

ان شا ا... به زودی یک سناریو برای طراحی فوروم معرفی میکنم تا اگه فرصت داشتین روش کار کنیم

موفق و موید باشین:)
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,671
لایک‌ها
67
سن
37
محل سکونت
نصف جهان
موجودیتهای این فوروم :

1- کاربر که به دو دسته کاربر عادی و مدیر تقسیم میشوند
کاربران عادی هم بر حسب برخی پارامترها به کاربر عادی، کاربرا فعال و کاربر ممتاز تقسیم میشوند

کاربر دارای این مشخصات است :
شناسه ، نام ، آدرس ایمیل ، تعداد پستها، تاریخ آخرین پست، گروه ، کلمه عبور ، تاریخ ثبت نام ، تاریخ آخرین دیدار ، اعتبار ، تنظیمات محلی زمان ، آواتار ، امضا ، فلگ فعال بودن ، زبان ، تم (theme) ، شناسه یاهو ، شناسه MSN ، جنسیت ، آدرس وب


2- پست
دارای این مشخصات است :
آی دی ارسال کننده ، زمان ارسال ، عنوان پست ، تاپیک پدر ، متن پست ، آخرین تاریخ ویرایش ، آدرس IP ارسال کننده

3- تاپیک
دارای این مشخصات است :
شناسه ، عنوان ، شرح،؛تعداد پستها ، تاریخ آخرین به روز رسانی ، ترتیب قرار گیری، شناسه مدیر تاپیک ، شناسه تاپیک پدر

4-پیغام
دارای این مشخصات است :
شناسه ، شناسه ارسال کننده ، شناسه دریافت کننده ، فلگ خوانده با ناخوانده ، تاریخ ارسال

امکانات فوروم :

کاربران :
ثبت نام
پست زدن ، ویرایش پست و حدف آن
ارسال و دریافت پیغام
ایجاد تاپیک جدید
ایجاد گروه دوستان


مدیران :
کلیه امکانات کاربران عادی
ایجاد تاپیک های اصلی و ویرایش آنها
انتقال پستها
تایید ثبت نام کاربر
تایید ، ویرایش و حذف هر پستها
ارسال پیغام به کلیه کاربران
نصب پلاگین ها
 

SherlockHolmes

کاربر قدیمی پرشین تولز
تاریخ عضویت
15 می 2004
نوشته‌ها
3,057
لایک‌ها
819
خیلی عالیه!!دستتون درد نکنه!!
فقط من بخاطر اینکه اشتباه نکنم یه مقدار نیاز به تفکر دارم!!
 

SherlockHolmes

کاربر قدیمی پرشین تولز
تاریخ عضویت
15 می 2004
نوشته‌ها
3,057
لایک‌ها
819
قبل از دادن ایده ترجیح دادم یه مقدار سناریو شما رو فشرده و به OOP نزدیکش کنم!!
خوب این سناریویی که شما دادید من این سه ماهیت رو از توش درآوردم!!
1:یوزر!
2:پست!
3:پیغام!

نکته ها
1:قبول دارید که تاپیک خودش یه پسته؟!
2:قبول دارید که یوزر یه مدیره با دسترسی محدود؟!

اگه این سه تا رو قبول دارید بریم سر مبحث بعدی!
و در آوردن ماهیت های جدید!
 

mosyhey1

Registered User
تاریخ عضویت
27 جولای 2005
نوشته‌ها
224
لایک‌ها
4
احسنت بر جناب EndOfCsharp که فیلد های هر یک از جدول ها را نوشته اند.
من یک فروم ساخته ام که برای تعداد کم جواب هم گرفته ام .
در یک بانک از نوع اکسس این جداول را ساخته ام :
1 - جدول کاربران (فیلد های کامل هر جدول در چند پست بالا تر آمده)
2 - جدول تاپیک که هر تاپیک یک ID دارد
3 - جدول پست ها که هر کس یک پست مربوط به یک تاپیک می زند ID آن تاپیک در یک فیلد جدول پست ها ذخیره می شود .
با درخواست صفحه اول فروم عنوان همه تاپیک ها می آید و روی هر کدام کلیک شود در صفحه ای دیگر خود متن آن تاپیک و همه پست هایی که این ID را دارند می آیند و چون یوزر نویسنده اش هم در جدول پست ها ذخیره شده است با آن یوزر نام و فامیل و ایمیل و ... را از جدول کاربران می گیرم و کنار هر پست نشان می دهم .
4 - جدول مدیران و ...

البته این ساده تربن نوع فروم بود بدون هیچ پیچیدگی ای .
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,671
لایک‌ها
67
سن
37
محل سکونت
نصف جهان
به نقل از SherlockHolmes :
قبل از دادن ایده ترجیح دادم یه مقدار سناریو شما رو فشرده و به OOP نزدیکش کنم!!
خوب این سناریویی که شما دادید من این سه ماهیت رو از توش درآوردم!!
1:یوزر!
2:پست!
3:پیغام!

نکته ها
1:قبول دارید که تاپیک خودش یه پسته؟!
2:قبول دارید که یوزر یه مدیره با دسترسی محدود؟!

اگه این سه تا رو قبول دارید بریم سر مبحث بعدی!
و در آوردن ماهیت های جدید!

مرسی

بله درسته

با شما موافق نیستم !!! :( به نظر من تاپیک خودش یک موجودیت جداگانه است ! اساسا ماهیت تاپیک و پست جدا هستند
شاید بشود به گونه ای این دو را در یک نمونه موجودیت پیاده سازی کرد ولی این خلاف اصل اول شیء گرایی که همان انتزاع یا abstraction است ، می باشد.

اگر دقت کرده با شین به پست بنده در مورد ماهیت فوروم و ماهیت هر یک از نمونه موجودیتها ، میبینین که این دو کاملا جدا هستند مثلا تعدا پستهای یک تالار فیلدی است که در پست نمی گنجد

نظر دوم شما رو هم اینجوری قبول دارم : مدیر یک کاربره با امکانات ویژه !!!


این ها که دو نظر شد ، پس چرا گفتین اگه این 3 تا را قبول دارین؟ !!!

پاینده باشین
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,671
لایک‌ها
67
سن
37
محل سکونت
نصف جهان
دوستان یه پیشنهاد دارم

بیاین عجله نکنیم و هنوز هیچی نشده سراغ کد نویسی و مسائل اینگونه نرویم !

نظر بنده اینه که فعلا روی فعالیتهای مهندسی نرم افزار کار کنیم.
فعلا تجزیه و تحلیل و مباحث مربوط به شیء گرایی و پایگاه داده رو طارحی کنیم تا بعد

دلشاد باشین
 

SherlockHolmes

کاربر قدیمی پرشین تولز
تاریخ عضویت
15 می 2004
نوشته‌ها
3,057
لایک‌ها
819
خوب من جمله ام رو اصلاح میکنم خوب شما قبول دارید که تاپیک یه پسته که پدر پستهای فرزندش تلقی میشه؟!
در مورد یوزر ها و مدیر ها باید بگم در اولین نگاه این طور به نظر میاد که به مدیر ها امکاناتی فرا تر از یوزر ها دارند!!
در حالی که از دید گاه من برای امنیت بیشتر یه سری دسترسی ها از یوزر ها خلع شده!اینکه اینقدر من روی این تکیه دارم اینه که ما روی مدیر کار میکنیم!و بعد ها موقع یوزر گرفتن ما امکانات حساس رو از یوزر ها حذف میکنیم!!
سر این به توافق بسیم و بریسم سراغ مسئله بعدی!
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,671
لایک‌ها
67
سن
37
محل سکونت
نصف جهان
به نقل از SherlockHolmes :
خوب من جمله ام رو اصلاح میکنم خوب شما قبول دارید که تاپیک یه پسته که پدر پستهای فرزندش تلقی میشه؟!
در مورد یوزر ها و مدیر ها باید بگم در اولین نگاه این طور به نظر میاد که به مدیر ها امکاناتی فرا تر از یوزر ها دارند!!
در حالی که از دید گاه من برای امنیت بیشتر یه سری دسترسی ها از یوزر ها خلع شده!اینکه اینقدر من روی این تکیه دارم اینه که ما روی مدیر کار میکنیم!و بعد ها موقع یوزر گرفتن ما امکانات حساس رو از یوزر ها حذف میکنیم!!
سر این به توافق بسیم و بریسم سراغ مسئله بعدی!

بازهم نشد !!!

ببینین ، در OOP وقتی میتونیم اسم پدر را بیاریم که این پدر حاوی قیلد هایی باشد که میخواهیم به تمام فرزندان به ارث برسد.

عرض کردم ، مثلا فیلدی مثل تعداد پستهای تاپیک را نمی شود در هر پست اعمال کرد ، یا دیگر فیلد ها مثلا آ[رین پست تاپیک و ....

البته همانطور که گفتم می شود اینگونه پیاده سازی کرد ولی به نظر اصولی نمی رسد.
ضمنا این را هم در نظر داشته باشید که در آینده شاید table ای از تاپیک ها بخواهیم که مشخصات هر تاپیک و شناسه تاپیک پدر را در خود نگه دارد ...

به هر حال در OOP باید تا حد ممکن انتزاعی عمل کرد ، وقتی میتوانیم این کار را بکنیم چرا کار را سخت کنیم ؟؟

در مورد دوم ، ما هر دو یک چیز مد نظرمان است. فرقی نمیکند ولی شاید آنطور که بنده گفتم ایمنی بهتر رعایت شود

در نظر شما ، اگر اشتباه کوچکی در کدنویسی رخ دهد ، ممکن است یک یوزر عادی به همه جا بتواند دسترسی پیدا کند

موفق باشید

حالا از نظر شما چه مشکلی دارد که تاپیک یک موجودیت جداگانه باشد ؟
 

SherlockHolmes

کاربر قدیمی پرشین تولز
تاریخ عضویت
15 می 2004
نوشته‌ها
3,057
لایک‌ها
819
خوب منظور من از لحاظ پدر فرزندی OOP نبود!!منظور من به طور کلی بود!!ولی در هر صورت پست و تاپیک شباهت های بی نظیری دارند!که از لحاظ آبجکت ارینتد به صلاح نیست دو موجودیتی که اینقدر با هم اشتراک دارند از هم مستقل باشند!!
نوع طراحی شما اولین راهیه که به ذهن طراح میرسه!!ولی این طراحی از نظر من اصولی نیست!!
حالا من توپ رو به زمین شما میندازم!!
ممکنه پراپرتی هاو متد های اضافی موجدیت تاپیک رو نسبت به پست نام ببرید!!
شاید من نکته ای رو ندیدم و پیشبینی نکرده ام!
 
بالا