ورود

View Full Version : حرفه ای: راهنمایی در مورد طراحی mysql



beh3000
سه شنبه 15 مهر 1393, 09:16 صبح
سلام دوستان

در مورد طراحی بانک اطلاعاتی یک سایت میخواستم بهم کمک کنید

یک سایت رو در نظر بگیرید که اولا عضویت داره بعد هم چندتا سرویس مثلا سرویس اخبار , سرویس اشتراک ویدئو , سرویس اشتراک عکس و چند تا سرویس دیگه

هر کدوم از سرویس ها رو روی یک سرور در نظر بگیرید از نظر دسترسی که به این شکله domain.com اگه اسم سایت باشه video.domain.com , news.domain.com و ...

هر سرویس هم نمیخوام یک لاگین جداگانه داشته باشه با لاگین کردن در یک سرویس در بقیه سرویس ها هم لاگین شده باشه کاربر ...

حالا در مورد بانکش : همه سرویس ها در یک بانک اطلاعاتی باشند , یا هر کدوم یک دیتابیس جداگانه باشند ؟ اگه جداگانه باشند user رو یک جدول در یک دیتا بیس در نظر بگیرم یا خودش یک دیتابیس جداگانه باشه ؟

در مورد نحوه طراحی و بهینه سازی هم هر کسی نظر خودشو بگه همه جوانب رو هم در نظر بگیرید توی طراحی ... افزایش رکوردها افزایش درخواست ها و ...

ممنون از همه دوستان

kahe.mehrdad
سه شنبه 15 مهر 1393, 09:48 صبح
دوست من توی طراحی SOA شما همه چیز را ماژولار باید در نظر بگیرید.
در این حالتی که شما فرمودید باید یک سرویس usermanagement با چند تا متد public داشته باشید. برای سرویس های دیگه هم به همین صورت. حالا مثلا اگه کاربر بخواد وارد سرویس اشتراک ویدیو بشه خود سرویس اشتراک ویدیو یک بار یه درخواست به usermanagement میده، بعد usermanagement یک مقدار true یا false برمیگردونه که کاربر قبلا آیا وارد شده یا نه. پس شما در کل یک جدول user در دیتابیس دارید و یک لایه entity برای مدیریت این جدول. بعد هر سرویس مستقیما روی این جدول کوئری نمیزنند، و توسط همون چند تا تابع public با لایه بالاترش ارتباط برقرار میکنند. امیدوارم خوب منظورم را رسونده باشم. اگه سوالی بود بفرمایید تا بیشتر توضیح بدم.

beh3000
سه شنبه 15 مهر 1393, 11:32 صبح
میشه روان تر توضیح بدین که user خوش جدول هست یا بانک ؟ سرویس های دیگه چ طور ؟ منظور از ماژولار نوشتن و متد پابلیک داشتن ؟ در حد دادن منبع هم باشه میتونید بهم کمک کنید ... ممنون از توضیحاتتون

kahe.mehrdad
سه شنبه 15 مهر 1393, 11:48 صبح
دوست من این مقاله رو بخونی تا حدودی کار دستت میاد که باید چیکار کنی.
http://vista.ir/article/218722/%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%DA%AF%D8%B1%D8%A7-%D8%AF%D8%B1-%D8%AA%D9%88%D9%84%DB%8C%D8%AF-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1

اگر در ادامه تو پیاده سازی سوالی بود بفرمایید.

beh3000
پنج شنبه 17 مهر 1393, 14:15 عصر
این مطالبی که شما دارید مطرح میکنید بحث تئوری کار هستند من الان توی قسمت عملی هستم ... حالا همین معماری سرویس گرا رو چطوری پیاده سازی کنم

kahe.mehrdad
جمعه 18 مهر 1393, 17:29 عصر
نه اصلا، اتفاقا چون پیاده سازی نرم افزار ها به روش سنتی دارای نقص هایی بوده معماری های جدید معرفی شده اند. ببینید به طور کلی معماری توسعه نرم افزار بر پایه دو مفهوم و مدل MVC و SOA پیاده سازی میشند. من خودم توی پیاده سازی SOA اونقدر قوی نیستم و اگر هم چیزی بگم بر اساس تجربیات شخصی هست. اما مطمئن باشید که این دو مفهوم هسته برنامه تون رو به شدت مستحکم میکنه و توسعه نرم افزارتون را هم بسیار سریع میکنه.
فکر میکنم از سوال اصلیتون فاصله گرفتیم. شما اگر امکان داره دیاگرام دیتابیسی که طراحی کردید را اینجا بذارید تا اگر ایرادی داشته باشه رفعش کنیم.