Anisi 301 ارسال شده در دی 91 گزارش بازنشر ارسال شده در دی 91 سلام دوستانمن می خواستم یه سیستم بنویسم، که هر کابر پنل خودشو داره.مثل سامانه پیامک یا حسابداری آنلاین (مثل جیب). می خواستم بدونم ساختار کلیش رو چطور بچینم. یعنی برای هر کاربر بعد از ایجاد یک دیتابیس جدید ایجاد بشه یا راه حل دیگه ای؟!!!اگر چیز دیگه ای هم برای همچین دیتابیسای بزرگی به ذهنتون میرسه دریغ نکنید لطفا. ممنون! نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در دی 91 گزارش بازنشر ارسال شده در دی 91 برای ساخت پنل نیازی به دیتابیس جدا نیست می تونید فیلدها را با استفاده از ستونهای جدول wp_user گسترش بدید مگر اینکه اطلاعات هر کاربر قرار باشه بیش از صد مگابایت باشه که در این صورت یا سرور دیتابیس باید رفع محدودیت بشه یا یک دیتابیس جداگانه براشون داشت 3 نقل قول لینک به ارسال
Anisi 301 ارسال شده در دی 91 مالک گزارش بازنشر ارسال شده در دی 91 برای ساخت پنل نیازی به دیتابیس جدا نیست می تونید فیلدها را با استفاده از ستونهای جدول wp_user گسترش بدید مگر اینکه اطلاعات هر کاربر قرار باشه بیش از صد مگابایت باشه که در این صورت یا سرور دیتابیس باید رفع محدودیت بشه یا یک دیتابیس جداگانه براشون داشتممنون از شماولی من نمس خوام این کارو توی وردپرس انجام بدم. می خوام یه سیستم php دیگه بنویسم مثل مثلا حسابداری که هر یوزر پنل برای خودش داره.حالا میشه همین کارو برای این سیستم هم پیاده کرد (یعنی بیام تعداد جدول ها رو افزایش بدم و پیشوند هر جدول رو یوزرنیم کاربر بذارم)؟ یا برای هر کاربر یه دیتابیس جدید بسازم؟ نقل قول لینک به ارسال
isk 4447 ارسال شده در دی 91 گزارش بازنشر ارسال شده در دی 91 آیا در سیستم های مالی و یا فروشگاهی تحت وب و یا تحت ویندوز برای هر مشتری یه دیتابیس جدا ایجاد می کنند؟آیا من و شما به ازای هر خط موبایلمون در مخابرات یه دیتابیس مجزا داریم؟اگر قرار باشه که هر کس یه دیتابیس برای خودش داشته باشه که مفهوم اساسی دیتابیس نقض میشه 2 نقل قول لینک به ارسال
Anisi 301 ارسال شده در دی 91 مالک گزارش بازنشر ارسال شده در دی 91 آیا در سیستم های مالی و یا فروشگاهی تحت وب و یا تحت ویندوز برای هر مشتری یه دیتابیس جدا ایجاد می کنند؟آیا من و شما به ازای هر خط موبایلمون در مخابرات یه دیتابیس مجزا داریم؟اگر قرار باشه که هر کس یه دیتابیس برای خودش داشته باشه که مفهوم اساسی دیتابیس نقض میشهآره! عجب مثال خوبی.خوب راه حل دیگه و بهینه چیه؟ همون پیشوند؟ نقل قول لینک به ارسال
isk 4447 ارسال شده در دی 91 گزارش بازنشر ارسال شده در دی 91 هر کسی از یه نقطه ایی وارد میشه - من اگر بجای شما باشم، قبل از اینکه به دنبال نامگذاری باشم سعی می کنم ساختار دیتابیس و گردش داده رو کاملاً تحلیل کنم؛ چون اینجوری علاوه بر اینکه ساختار رو توسعه پذیر می کنه، روش رو هم تعیین می کنه و وقتی روش تعیین شد، نامگذاری خود به خود ایجاد میشهاما اگر دنبال جواب سریع هستید، در نهایت به ازای هر کاربر (مشتری - کارمند - بسته های خدماتی) از پرفیکس دوم استفاده کنیدمثلاً:alfa_customer_hasanalfa_personal_alialfa_servises_sale 1 نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در دی 91 گزارش بازنشر ارسال شده در دی 91 آره! عجب مثال خوبی.خوب راه حل دیگه و بهینه چیه؟ همون پیشوند؟بهترین راه همونطور که گفته شد ایجاد و گسترده کردن ردیف کاربری در سیستم مورد نظرتونه اما در نظر داشته باشید در هر شکل و سیاقی نگهداری اطلاعات مالی از قبیل رمز و شماره حساب مشتری بر روی این نوع سیستم ها اشتباه برای ساخت بانک های اطلاعاتی بهتر بجای مای اسکیو ال در مورد اس کیو ال و اکسس تحقیق کنید ، بعیده با یک نرم افزار رایگان مثل مای اسکیو ال و اللخصوص بر روی یک هاست عمومی بشه از امنیت داده ها مطمئن شدمگر با استفاده از فایروال های سخت افزاری و هاست شخصی و سیستم های پرواما پیشنهاد بهترم اینه که سیستم حسابداری را برای محیط ویندوز و سیستم حسابداری تنظیم کنید (نمونه های خریدنی آماده خیلی مطمئن ازش تو بازار زیاده) و تنها صفحه نهایی گزارشات مالی که مشخصات حساب بانکی را ندارد آنلاین قرار بدید 1 نقل قول لینک به ارسال
Anisi 301 ارسال شده در دی 91 مالک گزارش بازنشر ارسال شده در دی 91 بهترین راه همونطور که گفته شد ایجاد و گسترده کردن ردیف کاربری در سیستم مورد نظرتونهاصلا متوجه نشدم! منظور همون تغییر پیشوند جدول برای هر کاربر هست؟!بهترین راه همونطور که گفته شد ایجاد و گسترده کردن ردیف کاربری در سیستم مورد نظرتونه اما در نظر داشته باشید در هر شکل و سیاقی نگهداری اطلاعات مالی از قبیل رمز و شماره حساب مشتری بر روی این نوع سیستم ها اشتباه برای ساخت بانک های اطلاعاتی بهتر بجای مای اسکیو ال در مورد اس کیو ال و اکسس تحقیق کنید ، بعیده با یک نرم افزار رایگان مثل مای اسکیو ال و اللخصوص بر روی یک هاست عمومی بشه از امنیت داده ها مطمئن شدمگر با استفاده از فایروال های سخت افزاری و هاست شخصی و سیستم های پرواما پیشنهاد بهترم اینه که سیستم حسابداری را برای محیط ویندوز و سیستم حسابداری تنظیم کنید (نمونه های خریدنی آماده خیلی مطمئن ازش تو بازار زیاده) و تنها صفحه نهایی گزارشات مالی که مشخصات حساب بانکی را ندارد آنلاین قرار بدیدحتما می خوام تحت وب باشه تا در دسترس باشه و فقط اطلاعات مالی رو نگهداری می کنه نه اطلاعات حساب و ... (مثل سایت jeeb.ir).چرا امنیت پایینه؟ آخه شنیدم ایران خودرو حسابداری تحت وب داره ولی فکر کنم اون اینترانت هست.شرکتای دیگه های هم هستن مثل sos و ...این که گفتید sql و access امنیتشون از mysql بالاتره؟!راستی یه سوال دبگه، مثلا اگر یک فرد رو بخوایم به چند دسته اضافه کنیم چه راهی خوبه؟ این خوبه که یه جدول دسته بسازیم و نام دسته ها رو با آی دی اختصاصی برای هر کدوم توش وارد کنیم و بعد توی جدول کاربر یک فیلد بذاریم و دسته هایی رو که عضوش هست رو با یه جداکننده واردش کنیمیا این راه بهتره که یه جدول دیگه بسازیم و آی دسته رو توی اون جدول توی یک فیلد و آی دی فردی رو که عضو اون دسته هست توی فیلد دیگه ای قرار بدیم. در این صورت اگر کاربر توی 10 تا دسته عضو باشه باید 10 تا رکورد ایجاد کرد توی این جدول جدید. چه راهی؟ راه بهتری هم هست؟ نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در دی 91 گزارش بازنشر ارسال شده در دی 91 اصلا متوجه نشدم! منظور همون تغییر پیشوند جدول برای هر کاربر هست؟!حتما می خوام تحت وب باشه تا در دسترس باشه و فقط اطلاعات مالی رو نگهداری می کنه نه اطلاعات حساب و ... (مثل سایت jeeb.ir).چرا امنیت پایینه؟ آخه شنیدم ایران خودرو حسابداری تحت وب داره ولی فکر کنم اون اینترانت هست.شرکتای دیگه های هم هستن مثل sos و ...این که گفتید sql و access امنیتشون از mysql بالاتره؟!راستی یه سوال دبگه، مثلا اگر یک فرد رو بخوایم به چند دسته اضافه کنیم چه راهی خوبه؟ این خوبه که یه جدول دسته بسازیم و نام دسته ها رو با آی دی اختصاصی برای هر کدوم توش وارد کنیم و بعد توی جدول کاربر یک فیلد بذاریم و دسته هایی رو که عضوش هست رو با یه جداکننده واردش کنیمیا این راه بهتره که یه جدول دیگه بسازیم و آی دسته رو توی اون جدول توی یک فیلد و آی دی فردی رو که عضو اون دسته هست توی فیلد دیگه ای قرار بدیم. در این صورت اگر کاربر توی 10 تا دسته عضو باشه باید 10 تا رکورد ایجاد کرد توی این جدول جدید. چه راهی؟ راه بهتری هم هست؟در مورد امنیت دیتابیس تحقیق کنید هر جا داره معمولا به فایروال های سخت افزاری قوی مجهزه و از نسخه های رایگان برای دیتابیسش استفاده نمی کنه نسخه های عمومی با توجه به فرم بودن تقریبا نصف راه را برای نفوذ باز کردندیک فرد را به چند دسته تقسیم کردن رو درست متوجه نشدماگر فرضا چهار دسته ی مشخص است و همه در همین دسته ها مقادیر مختلف دارند چهتار ستون به جدول اضافه کنید (مانند- حقوق ثابت - مزایا - اضافه کاری - ...)اگر چند دسته است که هر کس ممکنه عضو یکیش باشه یک ستون (مثل: کارمند - کارگر - تکنسین - نگهبان - خدمات)نرم افزارهایی که عرض کردم رو مطمئن نیستم قوی تر باشند ولی با توجه به اینکه عمومیت مای اسکیو ال را ندارند شاید کمتر مورد توجه مزاحمین باشند البته فقط پیشنهاد تحقیقش را دادم و اطلاعات خیلی جامعی ندارم ولی اکسس را می دانم در حجم اطلاعات بالا کارایی ندارد ودر حجم های پایین خوب جواب می ده 4 نقل قول لینک به ارسال
Anisi 301 ارسال شده در دی 91 مالک گزارش بازنشر ارسال شده در دی 91 خیلی خیلی ممنون که اینقدر سریع پاسخ میدید. یک فرد را به چند دسته تقسیم کردن رو درست متوجه نشدماگر فرضا چهار دسته ی مشخص است و همه در همین دسته ها مقادیر مختلف دارند چهتار ستون به جدول اضافه کنید (مانند- حقوق ثابت - مزایا - اضافه کاری - ...)اگر چند دسته است که هر کس ممکنه عضو یکیش باشه یک ستون (مثل: کارمند - کارگر - تکنسین - نگهبان - خدمات)1- نه هیچ کدوم از اینا!با یه مثال می گم. مثلا فرض کنید کابر من 3 تا دسته با توجه به نیازش بتونه توی سیستم بسازه: دسته 1، دسته 2 و دسته 3بعد بک فرد رو هم اضافه کنه و به دلخواه خودش، مثلا به دو دسته فرد رو اضافه کنه.منظورم طراحی دیتابیس برای همچنین ثبت کردنی هست (عین وردپرس که مثلا یک پست رو به چندتا دسته اضافه می کنیم)2- در ضمن من آخرش نفهمیدم برای پنل دهی به هر نفر (مثلا همین سیستم های پیامک انبوه یا هرچیزی) چطور دیتابیس رو ایجاد کنم؟اینم با یه مثال می گم:مثلا من 3 تا جدول دارم برای سیستم. یکی برای ذخیره کاربرا، یکی برای دسته هاو یکی هم برای حساب هر کاربر.حالا اگر بخوام مثلا به 50 تا کاربر 50 تا پنل برای این سیستم بدم، چطور باید دیتابیس طراحی بشه؟ نقل قول لینک به ارسال
rezaonline 2655 ارسال شده در دی 91 گزارش بازنشر ارسال شده در دی 91 حالا اگر بخوام مثلا به 50 تا کاربر 50 تا پنل برای این سیستم بدم، چطور باید دیتابیس طراحی بشه؟یک جدول برای کاربرها میسازید با فیلدهای دلخواه مثلا username , pass , email , site , mob , last_activityکه یک فیلد کلید اصلی داره مثلا به اسم user_idحالا یک جدول هم میسازید برای دسته هاcat_id , cat_nameکه cat_id کلید این جدول هست .حالا یه جدول برای ارتباط این دو تا میسازید اسمشو میذارید مثلا user_catبا دو فیلد user_id , cat_idبه هر تعداد که بخواید به هر کاربر دسته های متفاوتی میدید 7 نقل قول لینک به ارسال
Anisi 301 ارسال شده در دی 91 مالک گزارش بازنشر ارسال شده در دی 91 یک جدول برای کاربرها میسازید با فیلدهای دلخواه مثلا username , pass , email , site , mob , last_activityکه یک فیلد کلید اصلی داره مثلا به اسم user_idحالا یک جدول هم میسازید برای دسته هاcat_id , cat_nameکه cat_id کلید این جدول هست .حالا یه جدول برای ارتباط این دو تا میسازید اسمشو میذارید مثلا user_catبا دو فیلد user_id , cat_idبه هر تعداد که بخواید به هر کاربر دسته های متفاوتی میدیدممنونخوب این از جواب سوال 1.در مورد جواب سوال 2 هم دوستان کمک کنید لطفا! نقل قول لینک به ارسال
Morteza 34190 ارسال شده در دی 91 گزارش بازنشر ارسال شده در دی 91 الان جواب هر دو سوالتون بود!شما جدولی برای کاربر و جدولی برای دسته(یا پلن) ایجاد می کنید و براساس آی دی به همدیگه نسبت می دید. 3 نقل قول لینک به ارسال
Anisi 301 ارسال شده در دی 91 مالک گزارش بازنشر ارسال شده در دی 91 (ویرایش شده) الان جواب هر دو سوالتون بود!شما جدولی برای کاربر و جدولی برای دسته(یا پلن) ایجاد می کنید و براساس آی دی به همدیگه نسبت می دید.یعنی مثلا اگر یک کاربر 1 دسته بندی 1 و دسته بندی 2 ایجاد کرد و کاربر 2 دسته بندی 3 رو ایجاد کرد، هر دو رو توی جدول دسته بندی وارد کنم و توی یک جدول دیگه، رابطه کاربر و این دسته بندی ها رو؟!مثلا اگر 100 تا کاربر باشن و هرکدوم 200 تا دسته وارد کنن توی جدول دسته فقط 20000 تا رکورد داریم و همینطور توی جدول رابطه هاشون! اونوقت حجم جدول زیاد نمیشه و سرعت کوئری ها پایین بیاد؟ ویرایش شده دی 91 توسط Anisi نقل قول لینک به ارسال
rezaonline 2655 ارسال شده در بهمن 91 گزارش بازنشر ارسال شده در بهمن 91 جدول اولuser_id , usernameبا مقادیر 1 reza2 bahman3 morteza4 ansiجدول دسته ها catcat_id , cat_nameبا مقادیر1 example12 example23 example34 example45 example56 example6,...حالا کاربر شماره 1 دسته های اکسامپل 1و6و3کاربر2 دسته 1 و 5cat_id , user_id1 16 13 11 25 2امیدوارم متوجه شده باشید 5 نقل قول لینک به ارسال
Anisi 301 ارسال شده در بهمن 91 مالک گزارش بازنشر ارسال شده در بهمن 91 (ویرایش شده) امیدوارم متوجه شده باشیدممنون از شما!این رو متوجه شده بودم، اما سوالم این بود که این راه حل به درد دیتابیس سیستم حسابداری با پنل دهی می خوره؟به نظرم اومد این پاسخ برای این باشه که چطور مثلا یک فرد رو در چند دسته بندی قرار بدیم و مناسب برای چنین سیستمی نباشه که 100 تا پنل به 100 نفر بدیم و هر کدوم 100 تا پرداخت و 100 تا دریافت رو ثبت کنن و ما با این نوع طراحی دیتابیس این دریافت ها و پرداخت ها رو همه در یک جدول ثبت کنیم و با یک جدول دیگه به هر کاربر اختصاص بدیم. سرعت کوئری ها پایین نمیاد و حجم جدول بره بالا؟ ویرایش شده بهمن 91 توسط Anisi نقل قول لینک به ارسال
Parsa 23463 ارسال شده در بهمن 91 گزارش بازنشر ارسال شده در بهمن 91 1000 و 100.000 و 10000000000 رکورد چیزی نیست!مهم اینه که شما از جهت نرمال سازی و مباحث افزونگی داده جدولها را درست طراحی کنیدو نیازها رو بسنجیدوضعیت فعلی طراجی جدولها چگونه است؟ 5 نقل قول لینک به ارسال
rezaonline 2655 ارسال شده در بهمن 91 گزارش بازنشر ارسال شده در بهمن 91 MySQL رو چی فرض کردی ؟شما ایندکس گذاری مناسب بذار ، دیتاتایپ مناسب بذار ، بعد بیاد در مورد میلیون رکورد و میلی ثانیه حرف بزن با خیال تخت 3 نقل قول لینک به ارسال
Anisi 301 ارسال شده در بهمن 91 مالک گزارش بازنشر ارسال شده در بهمن 91 MySQL رو چی فرض کردی ؟شما ایندکس گذاری مناسب بذار ، دیتاتایپ مناسب بذار ، بعد بیاد در مورد میلیون رکورد و میلی ثانیه حرف بزن با خیال تخت بی خیال!ممنون1000 و 100.000 و 10000000000 رکورد چیزی نیست!مهم اینه که شما از جهت نرمال سازی و مباحث افزونگی داده جدولها را درست طراحی کنیدو نیازها رو بسنجیدوضعیت فعلی طراجی جدولها چگونه است؟ممنوناما یه منبع میدید برای همین تکنیکا.توی پایگاه داده دانشگاه که چیز به درد بخوری نمی گن! نقل قول لینک به ارسال
Parsa 23463 ارسال شده در بهمن 91 گزارش بازنشر ارسال شده در بهمن 91 آموزش انگلیسی:ftp://ftp.uar.net/pub/e-books/mysql and php database applications.pdfاسلاید دانشگاه قبلی یه نگاه بندازید (پیوست)Database.zip 4 نقل قول لینک به ارسال
rezaonline 2655 ارسال شده در بهمن 91 گزارش بازنشر ارسال شده در بهمن 91 بهترین منبع به یقین کتاب خودشون هستMySQL 5.5 Reference ManualIncluding MySQL Cluster NDB 7.2 Reference Guideالبته کمی حجمش زیاده (4400 صفحه) اما لازم نیست همه بخشهاشو بخونی .کتاب Teach Yourself MySQL in 21 Days هم بد نیست حجمش خوبه 300 صفحه است ، بخونیش کارت راه می افته اما هیچ چیز جز تجربه و بنچ مارک نمیتونه بهترین راه حل رو بهت نشون بده !روی دیتاتایپ ها حساس باش .انجین رو InnoDB بذار .سعی کن کمتر از جوین استفاده کنی !توی واکشی (select ) همیشه صریحا فیلدهای اون اطلاعاتی رو که میخوای مشخص کن (select `id` , `username` from tbl where id=1)از کش هم استفاده کن برای داده هات تا بار رو از روی دیتابیس برداری .سعی کن تعداد کوئری هات بیشتر از 10 تا نشه !دیگه چیزی به ذهنم نمیرسه جز اینکه ، برو ببینم چیکار میکنی 2 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .