• اطلاعیه ها

    • Saeed Fard

      حمایت وردپرس پارسی از همایش آینده وب و موبایل   19/04/74

        چهارم و پنجم اسفند ماه 1395، همایش آیندهٔ وب و موبایل ایران با حمایت سازمان فناوری اطلاعات در مرکز همایش‌های شهید قندی برگزار خواهد شد. این همایش یک رویداد ۲ روزه است که در آن پیشتازان صنعت وب و موبایل از تکنولوژی‌های روز دنیا در این حوزه‌ها سخن می‌گویند به طوری که این همایش پنجره‌ای به چشم‌انداز آینده‌ٔ وب و موبایل در جهان، و همچنین راهنمایی برای تصمیم‌گیران، تصمیم‌سازان و متخصصان ایرانی است.   فرصت‌هایی که FOWM#  برای شما خلق خواهد کرد: آشنایی با تکنولوژی‌های آینده‌ساز وب و موبایل شرکت در مباحث چالشی درباره وب و موبایل ارتباط و شبکه‌سازی با “قله‌های وب و موبایل” موقعیت‌های کاری، هم‌تیمی‌های جدید دریافت گواهی شرکت در همایش دو روز به‌یادماندنی سرشار از شگفتی   شرکت‌کنندگان در این همایش ضمن آشنایی با فناوری‌های آینده‌ساز وب و موبایل، شرکت در مباحث چالشی و ارتباط با بزرگان وب و موبایل ایران، می‌توانند موقعیت‌های کاری و هم‌تیمی‌های جدید برای کسب‌وکار خود بیابند. این همایش برای طراحان و توسعه‌دهندگان وب‌سایت و موبایل، مدیران ارشد سازمان‌ها، صاحبان کسب‌وکارهای کوچک و متوسط، دانشجویان و علاقه‌مندان دارای نکات آموزشی و جذاب خواهد بود.   مجید علوی‌زاده، دبیر همایش آیندهٔ وب و موبایل که سابقه اجرای چند همایش و سمینار مرتبط را دارد، اعلام کرد: جمعی از بهترین‌ها و پیشروان این دو حوزه در ایران با ارائه‌های تخصصی خود، چشم‌انداز آینده این صنعت‌ها را به شرکت‌کنندگان عرضه خواهند کرد.   در هر یک از روزهای برگزاری همایش، یک پنل تخصصی در مورد یکی از موضوع‌های مهم این حوزه نیز برگزار خواهد شد و دست‌اندرکاران به بحث و تبادل نظر خواهند پرداخت و در پایان، به شرکت‌کنندگان گواهی حضور در همایش اعطا خواهد شد.   ثبت نام در مهمترین رویداد صنعت وب و موبایل ایران تا پایان بهمن ماه ۹۵ امکان پذیر خواهد بود، برای ثبت نام و یا کسب اطلاعات بیشتر در خصوص این رویداد و آشنایی با موضوعات و سخنرانان به آدرس http://conf.wsschool.org/fowm مراجعه نمایید.   کاربران وردپرس پارسی می‌توانند با استفاده از کد wp-parsi از مبلغ ۴۰ هزار تومان تخفیف در ثبت نام برخوردار شوند.
Anisi

راهنمایی برای ساخت دیتابیس

21 پست در این موضوع قرار دارد

سلام دوستان

من می خواستم یه سیستم بنویسم، که هر کابر پنل خودشو داره.

مثل سامانه پیامک یا حسابداری آنلاین (مثل جیب). می خواستم بدونم ساختار کلیش رو چطور بچینم. یعنی برای هر کاربر بعد از ایجاد یک دیتابیس جدید ایجاد بشه یا راه حل دیگه ای؟!!!

اگر چیز دیگه ای هم برای همچین دیتابیسای بزرگی به ذهنتون میرسه دریغ نکنید لطفا. ممنون!

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

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

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

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

ممنون از شما

ولی من نمس خوام این کارو توی وردپرس انجام بدم. می خوام یه سیستم php دیگه بنویسم مثل مثلا حسابداری که هر یوزر پنل برای خودش داره.

حالا میشه همین کارو برای این سیستم هم پیاده کرد (یعنی بیام تعداد جدول ها رو افزایش بدم و پیشوند هر جدول رو یوزرنیم کاربر بذارم)؟ یا برای هر کاربر یه دیتابیس جدید بسازم؟

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

آیا در سیستم های مالی و یا فروشگاهی تحت وب و یا تحت ویندوز برای هر مشتری یه دیتابیس جدا ایجاد می کنند؟

آیا من و شما به ازای هر خط موبایلمون در مخابرات یه دیتابیس مجزا داریم؟

اگر قرار باشه که هر کس یه دیتابیس برای خودش داشته باشه که مفهوم اساسی دیتابیس نقض میشه

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

آیا در سیستم های مالی و یا فروشگاهی تحت وب و یا تحت ویندوز برای هر مشتری یه دیتابیس جدا ایجاد می کنند؟

آیا من و شما به ازای هر خط موبایلمون در مخابرات یه دیتابیس مجزا داریم؟

اگر قرار باشه که هر کس یه دیتابیس برای خودش داشته باشه که مفهوم اساسی دیتابیس نقض میشه

آره! عجب مثال خوبی.

خوب راه حل دیگه و بهینه چیه؟ همون پیشوند؟

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

هر کسی از یه نقطه ایی وارد میشه - من اگر بجای شما باشم، قبل از اینکه به دنبال نامگذاری باشم سعی می کنم ساختار دیتابیس و گردش داده رو کاملاً تحلیل کنم؛ چون اینجوری علاوه بر اینکه ساختار رو توسعه پذیر می کنه، روش رو هم تعیین می کنه و وقتی روش تعیین شد، نامگذاری خود به خود ایجاد میشه

اما اگر دنبال جواب سریع هستید، در نهایت به ازای هر کاربر (مشتری - کارمند - بسته های خدماتی) از پرفیکس دوم استفاده کنید

مثلاً:

alfa_customer_hasan

alfa_personal_ali

alfa_servises_sale

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

آره! عجب مثال خوبی.

خوب راه حل دیگه و بهینه چیه؟ همون پیشوند؟

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

مگر با استفاده از فایروال های سخت افزاری و هاست شخصی و سیستم های پرو

اما پیشنهاد بهترم اینه که سیستم حسابداری را برای محیط ویندوز و سیستم حسابداری تنظیم کنید (نمونه های خریدنی آماده خیلی مطمئن ازش تو بازار زیاده) و تنها صفحه نهایی گزارشات مالی که مشخصات حساب بانکی را ندارد آنلاین قرار بدید

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

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

اصلا متوجه نشدم! منظور همون تغییر پیشوند جدول برای هر کاربر هست؟!

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

مگر با استفاده از فایروال های سخت افزاری و هاست شخصی و سیستم های پرو

اما پیشنهاد بهترم اینه که سیستم حسابداری را برای محیط ویندوز و سیستم حسابداری تنظیم کنید (نمونه های خریدنی آماده خیلی مطمئن ازش تو بازار زیاده) و تنها صفحه نهایی گزارشات مالی که مشخصات حساب بانکی را ندارد آنلاین قرار بدید

حتما می خوام تحت وب باشه تا در دسترس باشه و فقط اطلاعات مالی رو نگهداری می کنه نه اطلاعات حساب و ... (مثل سایت jeeb.ir).

چرا امنیت پایینه؟ آخه شنیدم ایران خودرو حسابداری تحت وب داره ولی فکر کنم اون اینترانت هست.

شرکتای دیگه های هم هستن مثل sos و ...

این که گفتید sql و access امنیتشون از mysql بالاتره؟!

راستی یه سوال دبگه، مثلا اگر یک فرد رو بخوایم به چند دسته اضافه کنیم چه راهی خوبه؟ این خوبه که یه جدول دسته بسازیم و نام دسته ها رو با آی دی اختصاصی برای هر کدوم توش وارد کنیم و بعد توی جدول کاربر یک فیلد بذاریم و دسته هایی رو که عضوش هست رو با یه جداکننده واردش کنیم

یا این راه بهتره که یه جدول دیگه بسازیم و آی دسته رو توی اون جدول توی یک فیلد و آی دی فردی رو که عضو اون دسته هست توی فیلد دیگه ای قرار بدیم. در این صورت اگر کاربر توی 10 تا دسته عضو باشه باید 10 تا رکورد ایجاد کرد توی این جدول جدید. چه راهی؟ راه بهتری هم هست؟

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

اصلا متوجه نشدم! منظور همون تغییر پیشوند جدول برای هر کاربر هست؟!

حتما می خوام تحت وب باشه تا در دسترس باشه و فقط اطلاعات مالی رو نگهداری می کنه نه اطلاعات حساب و ... (مثل سایت jeeb.ir).

چرا امنیت پایینه؟ آخه شنیدم ایران خودرو حسابداری تحت وب داره ولی فکر کنم اون اینترانت هست.

شرکتای دیگه های هم هستن مثل sos و ...

این که گفتید sql و access امنیتشون از mysql بالاتره؟!

راستی یه سوال دبگه، مثلا اگر یک فرد رو بخوایم به چند دسته اضافه کنیم چه راهی خوبه؟ این خوبه که یه جدول دسته بسازیم و نام دسته ها رو با آی دی اختصاصی برای هر کدوم توش وارد کنیم و بعد توی جدول کاربر یک فیلد بذاریم و دسته هایی رو که عضوش هست رو با یه جداکننده واردش کنیم

یا این راه بهتره که یه جدول دیگه بسازیم و آی دسته رو توی اون جدول توی یک فیلد و آی دی فردی رو که عضو اون دسته هست توی فیلد دیگه ای قرار بدیم. در این صورت اگر کاربر توی 10 تا دسته عضو باشه باید 10 تا رکورد ایجاد کرد توی این جدول جدید. چه راهی؟ راه بهتری هم هست؟

در مورد امنیت دیتابیس تحقیق کنید هر جا داره معمولا به فایروال های سخت افزاری قوی مجهزه و از نسخه های رایگان برای دیتابیسش استفاده نمی کنه نسخه های عمومی با توجه به فرم بودن تقریبا نصف راه را برای نفوذ باز کردند

یک فرد را به چند دسته تقسیم کردن رو درست متوجه نشدم

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

اگر چند دسته است که هر کس ممکنه عضو یکیش باشه یک ستون (مثل: کارمند - کارگر - تکنسین - نگهبان - خدمات)

نرم افزارهایی که عرض کردم رو مطمئن نیستم قوی تر باشند ولی با توجه به اینکه عمومیت مای اسکیو ال را ندارند شاید کمتر مورد توجه مزاحمین باشند البته فقط پیشنهاد تحقیقش را دادم و اطلاعات خیلی جامعی ندارم ولی اکسس را می دانم در حجم اطلاعات بالا کارایی ندارد ودر حجم های پایین خوب جواب می ده

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

خیلی خیلی ممنون که اینقدر سریع پاسخ میدید. :wub:

یک فرد را به چند دسته تقسیم کردن رو درست متوجه نشدم

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

اگر چند دسته است که هر کس ممکنه عضو یکیش باشه یک ستون (مثل: کارمند - کارگر - تکنسین - نگهبان - خدمات)

1- نه هیچ کدوم از اینا!

با یه مثال می گم. مثلا فرض کنید کابر من 3 تا دسته با توجه به نیازش بتونه توی سیستم بسازه: دسته 1، دسته 2 و دسته 3

بعد بک فرد رو هم اضافه کنه و به دلخواه خودش، مثلا به دو دسته فرد رو اضافه کنه.

منظورم طراحی دیتابیس برای همچنین ثبت کردنی هست (عین وردپرس که مثلا یک پست رو به چندتا دسته اضافه می کنیم)

2- در ضمن من آخرش نفهمیدم برای پنل دهی به هر نفر (مثلا همین سیستم های پیامک انبوه یا هرچیزی) چطور دیتابیس رو ایجاد کنم؟

اینم با یه مثال می گم:

مثلا من 3 تا جدول دارم برای سیستم. یکی برای ذخیره کاربرا، یکی برای دسته هاو یکی هم برای حساب هر کاربر.

حالا اگر بخوام مثلا به 50 تا کاربر 50 تا پنل برای این سیستم بدم، چطور باید دیتابیس طراحی بشه؟

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر
حالا اگر بخوام مثلا به 50 تا کاربر 50 تا پنل برای این سیستم بدم، چطور باید دیتابیس طراحی بشه؟

یک جدول برای کاربرها میسازید با فیلدهای دلخواه مثلا username , pass , email , site , mob , last_activity

که یک فیلد کلید اصلی داره مثلا به اسم user_id

حالا یک جدول هم میسازید برای دسته ها

cat_id , cat_name

که cat_id کلید این جدول هست .

حالا یه جدول برای ارتباط این دو تا میسازید اسمشو میذارید مثلا user_cat

با دو فیلد user_id , cat_id

به هر تعداد که بخواید به هر کاربر دسته های متفاوتی میدید

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

یک جدول برای کاربرها میسازید با فیلدهای دلخواه مثلا username , pass , email , site , mob , last_activity

که یک فیلد کلید اصلی داره مثلا به اسم user_id

حالا یک جدول هم میسازید برای دسته ها

cat_id , cat_name

که cat_id کلید این جدول هست .

حالا یه جدول برای ارتباط این دو تا میسازید اسمشو میذارید مثلا user_cat

با دو فیلد user_id , cat_id

به هر تعداد که بخواید به هر کاربر دسته های متفاوتی میدید

ممنون

خوب این از جواب سوال 1.

در مورد جواب سوال 2 هم دوستان کمک کنید لطفا!

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

الان جواب هر دو سوالتون بود!

شما جدولی برای کاربر و جدولی برای دسته(یا پلن) ایجاد می کنید و براساس آی دی به همدیگه نسبت می دید.

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

الان جواب هر دو سوالتون بود!

شما جدولی برای کاربر و جدولی برای دسته(یا پلن) ایجاد می کنید و براساس آی دی به همدیگه نسبت می دید.

یعنی مثلا اگر یک کاربر 1 دسته بندی 1 و دسته بندی 2 ایجاد کرد و کاربر 2 دسته بندی 3 رو ایجاد کرد، هر دو رو توی جدول دسته بندی وارد کنم و توی یک جدول دیگه، رابطه کاربر و این دسته بندی ها رو؟!

مثلا اگر 100 تا کاربر باشن و هرکدوم 200 تا دسته وارد کنن توی جدول دسته فقط 20000 تا رکورد داریم و همینطور توی جدول رابطه هاشون! اونوقت حجم جدول زیاد نمیشه و سرعت کوئری ها پایین بیاد؟

ویرایش شده در توسط Anisi

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

جدول اول

user_id , username

با مقادیر


1 reza
2 bahman
3 morteza
4 ansi

جدول دسته ها cat

cat_id , cat_name

با مقادیر


1 example1
2 example2
3 example3
4 example4
5 example5
6 example6
,...

حالا کاربر شماره 1 دسته های اکسامپل 1و6و3

کاربر2 دسته 1 و 5

cat_id , user_id


1 1
6 1
3 1
1 2
5 2

امیدوارم متوجه شده باشید

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

امیدوارم متوجه شده باشید

ممنون از شما!

این رو متوجه شده بودم، اما سوالم این بود که این راه حل به درد دیتابیس سیستم حسابداری با پنل دهی می خوره؟

به نظرم اومد این پاسخ برای این باشه که چطور مثلا یک فرد رو در چند دسته بندی قرار بدیم و مناسب برای چنین سیستمی نباشه که 100 تا پنل به 100 نفر بدیم و هر کدوم 100 تا پرداخت و 100 تا دریافت رو ثبت کنن و ما با این نوع طراحی دیتابیس این دریافت ها و پرداخت ها رو همه در یک جدول ثبت کنیم و با یک جدول دیگه به هر کاربر اختصاص بدیم. سرعت کوئری ها پایین نمیاد و حجم جدول بره بالا؟

ویرایش شده در توسط Anisi

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

1000 و 100.000 و 10000000000 رکورد چیزی نیست!

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

و نیازها رو بسنجید

وضعیت فعلی طراجی جدولها چگونه است؟

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

MySQL رو چی فرض کردی ؟

شما ایندکس گذاری مناسب بذار ، دیتاتایپ مناسب بذار ، بعد بیاد در مورد میلیون رکورد و میلی ثانیه حرف بزن با خیال تخت :)

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

MySQL رو چی فرض کردی ؟

شما ایندکس گذاری مناسب بذار ، دیتاتایپ مناسب بذار ، بعد بیاد در مورد میلیون رکورد و میلی ثانیه حرف بزن با خیال تخت :)

بی خیال!

ممنون

1000 و 100.000 و 10000000000 رکورد چیزی نیست!

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

و نیازها رو بسنجید

وضعیت فعلی طراجی جدولها چگونه است؟

ممنون

اما یه منبع میدید برای همین تکنیکا.

توی پایگاه داده دانشگاه که چیز به درد بخوری نمی گن!

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

آموزش انگلیسی:

ftp://ftp.uar.net/pub/e-books/mysql and php database applications.pdf

اسلاید دانشگاه قبلی :) یه نگاه بندازید (پیوست)

Database.zip

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

بهترین منبع به یقین کتاب خودشون هست


MySQL 5.5 Reference Manual
Including 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 تا نشه !

دیگه چیزی به ذهنم نمیرسه جز اینکه ، برو ببینم چیکار میکنی :)

به اشتراک گذاری این پست


لینک به پست
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری