PDA

View Full Version : حرفه ای: سوال فنی در مورد ساخت جدول یا دیتابیس



abolfazl-z
چهارشنبه 28 اسفند 1392, 15:21 عصر
سلام

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

خوب اگر ما برای هر کاربر یک دیتابیس جدا بسازیم بهتر هست یا برای هر کاربر یک جدول در یک دیتابیس ؟ (از لحاظ سرعت، بکارگیری منابع سیستم و ...)

desatir7316
چهارشنبه 28 اسفند 1392, 16:05 عصر
توی یه تیبل اطلاعات همه کاربران رو بریز و به هر کاربر یه id یکتا به صورت کلید اصلی بده

abolfazl-z
چهارشنبه 28 اسفند 1392, 16:29 عصر
توی یه تیبل اطلاعات همه کاربران رو بریز و به هر کاربر یه id یکتا به صورت کلید اصلی بده

دوست عزیز من بحث برنامه نویسی رو وسط نکشیدم :|

abolfazl-z
چهارشنبه 28 اسفند 1392, 16:42 عصر
البته از نظر خودم دیتابیس جدا خیلی بهتر هست.

desatir7316
چهارشنبه 28 اسفند 1392, 16:51 عصر
دوست عزیز من بحث برنامه نویسی رو وسط نکشیدم :|
برنامه نویسی چیه؟ منم دارم پایگاه داده رو می گم

abolfazl-z
چهارشنبه 28 اسفند 1392, 17:19 عصر
برنامه نویسی چیه؟ منم دارم پایگاه داده رو می گم
چرا میزنید :)

ممنون که پاسخ دادید.
در کل بنده در رسم نمودار ER مشکلی ندارم و اگر به سوال دقت کرده باشید در مورد performance بیشتر تاکید کردم !

desatir7316
چهارشنبه 28 اسفند 1392, 19:28 عصر
مدل سازی که شما می گید اشتباست دوست عزیز
یه نگاهی به کتاب high_performance_mysql بندازید، این چیزا رو خوب پوشش داده

abolfazl-z
چهارشنبه 28 اسفند 1392, 21:55 عصر
مدل سازی که شما می گید اشتباست دوست عزیز
یه نگاهی به کتاب high_performance_mysql بندازید، این چیزا رو خوب پوشش داده

خوب شما که کتاب معرفی کردید جواب سوال بالا را بدهید کدام یک بهتر هست ؟ :متفکر:

برفرض مثال شما فکر کنید 100 هزار تا کاربر دارید خوب من بیام هر کاربر رو با مدل سازی و .... ردیف کنم و بر فرض مثال هر پستی که مربوط به کاربر رو نشون بدهم.

آیا این حجم عظیم کوئری ها بر روی یک جدول performance را کاهش نمیدهد ؟

فکر کنم منظورم را واضح بیان کردم.

us1234
چهارشنبه 28 اسفند 1392, 23:28 عصر
http://stackoverflow.com/questions/696682/mysql-many-tables-or-many-databases

مختصر بخوام توضیح بدم گفته که استفاده از تیبل و دیتابیس ها فقط برای ساختار و به نوعی دسته بندی اطلاعات انجام میشه . هسته دیتابیس واحده و یک دیتابیس با تیبل زیاد یا چند دیتابیس با تیبل کم تاثیری در عملکرد نداره .

maysam.m
پنج شنبه 29 اسفند 1392, 01:02 صبح
به نظرم یک دیتابیس داشته باشی خیلی بهتره
میتونی به جای چند تا دیتابیس چند تا جدول با یه پیشوند که میتونه آی دی هربلاگ باشه برای هر کاربر درست کنی درست مثل وردپرس شبکه
و یه سری جدول رو هم مشترک قرار بدی و اطلاعات رو از اون بخونی مثل جدول کاربرا

desatir7316
پنج شنبه 29 اسفند 1392, 08:33 صبح
بهتره شما DB رو مثل همیشه طراحی کنید و برای performance و ... تمرکزتونو روی بحث های دیگه ای بذارید
اگه همون کتابی رو که گفتم رو یه نگاه درست و حسابی بندازید خودتون متوجه می شید، یه نگاهی به سرفصل هاش بندازید، مثلا فصل 5 هست indexig for high performance، فصل 12 هست : high availabiliy , یا فصل 5 هست optimizing schema and data types , ...

راستی امشب سال نو هست، سال نوی همه بچه های برنامه نویس مبارک

abolfazl-z
پنج شنبه 29 اسفند 1392, 10:50 صبح
باز هم ممنون از تمامی دوستان.

همانطور که شما فرمودین و تحقیقاتی که خودم انجام دادم به این نتیجه رسیدم که هیچ تاثیری در performance ندارد و همه چی به برنامه نویس بستگی دارد که می خواهد چطوری مدیریت کند.

ولی از آنجایی که امکانات هر کاربر متفاوت هست(در طراحی من) و امنیت هم صد در صد نمی شود این عمل(استفاده از چند دیتابیس) امنیت را 100% بالا می برد. (هر کاربر با دیتابیس جدا + نام کاربری و رمز عبور)

پس از آنجایی که چند دیتابیس یا یک دیتابیس تاثیری در performance ندارد ولی تاثیری در کد نویسی دارد چرا که ما اگر از یک دیتابیس استفاده کنیم باید بین تمامی جداول ارتباط برقرار کنیم و در نتیجه کد نویسی هم افزایش پیدا می کند و تعداد کوئری ها افزایش پیدا می کند.
پس من از چند پایگاه داده جدا برای پروژه ام استفاده کنم بهتر هست.

http://forums.mysql.com/read.php?125,409348,410118#msg-410118

سال نو پیش ! پیش مبارک :)