• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پیش فرض ویرایش اطلاعات دیتابیس به صورت شخصی
#1
سلام دوستان حالا عنوان خوبی برای این مشکلم پیدا نکردم ببخشید

من یه دیتابیس دارم که توش اطلاعات مربوط به اموزشگاهها ذخیره میشه ،چندین مدیر برای سایت دارم که هر کدوم اموزشگاههای خودشونو توی دیتابیس ذخیره میکنن
فرض کنید من 2 تا اموزشگاه دارم و توی دیتابیس وارد کردم و شما هم 3 تا دیگه که شما وارد دیتابیس میکنید درست؟
حالا من میخوام از صفحه مدیریت سایت اطلاعات اموزشگاهامو ویرایش کنم و فقط میخوام که اطلاعات اموزشگاههای خودمو ویرایش کنم و نتونم اموزشگاههایی که مال خودم نیست رو دستکاری کنم
اینو به چه صورت باید پیاده سازی کنم؟

Sad
  پاسخ
تشکر شده توسط :
#2
برای جدول آموزشگاه ها یک کلید خارجی در نظر بگیر که توش آی دی مدیر آموزشگاه ذخیره میشه، مثلا شما مدیر هستی با آی دی یک، اطلاعات آموزشگاهی که ثبت میکنی توی کلید خارجیش آی دی یک میزاری، منم مثلا مدیر دوم، توی کلید خارجی آی دی دو قرار میگیره.
اینجوری وقتی میخوای نمایش/ویرایش/حذف کنی اول چک میکنی کلید خارجی آموزشگاه با آی دی مدیر یکی هست یا نه، اگه نبود مجوز نمیدی بهش.
نمیدونم واضح گفتم یا نه Huh
غایب
  پاسخ
تشکر شده توسط : farshadmahfa webnevesht
#3
(۱۳۹۳ مرداد ۲۲, ۰۱:۳۵ ق.ظ)Alaa نوشته: برای جدول آموزشگاه ها یک کلید خارجی در نظر بگیر که توش آی دی مدیر آموزشگاه ذخیره میشه، مثلا شما مدیر هستی با آی دی یک، اطلاعات آموزشگاهی که ثبت میکنی توی کلید خارجیش آی دی یک میزاری، منم مثلا مدیر دوم، توی کلید خارجی آی دی دو قرار میگیره.
اینجوری وقتی میخوای نمایش/ویرایش/حذف کنی اول چک میکنی کلید خارجی آموزشگاه با آی دی مدیر یکی هست یا نه، اگه نبود مجوز نمیدی بهش.
نمیدونم واضح گفتم یا نه Huh

ممنون alla جان متوجه قضیه شدم
میشه یه مثال کوچولو بزنی تا بهتر بفهمم ؟
  پاسخ
تشکر شده توسط :
#4
نه، نمیشه Big Grin

ببین، مثلا فیلد جدول آموزشگاه ها این میشه :
amozeshgahID, adminID, name, address
و جدول مدیرها هم فیلد هاش این میشه :
adminID, name, age, gender
الان فیلد adminID در جدول آموزشگاه ها چی میشه ؟‌ میشه کلید خارجی.
الان مثلا بخوای یک مدیر تعریف کنی، مدیر اول میشه :
کد:
adminID : 1
name : Khepel
age : 24
gender : male
مدیر دوم میشه :
کد:
adminID : 2
name : Gholi
age : 10
gender : male
حالا مدیر ها تعریف شدن، الان اگه مثلا مدیر یک بخواد یک آموزشگاه تعریف کنه اطلاعات به این صورت ذخیره میشه :
کد:
zmozeshgahID : 1
adminID : 1
name : golhayekhandan
address : Tehran
خب، حالا مدیر یک میخواد اطلاعات رو ویرایش کنه، شما آی دی مدیر یک رو که داری قطعا، مثلا ریختی توی سشن یا هر روش دیگه ای، وقتی می خوای شرط بزاری، شرط میزاری جاهایی که adminID برابر یک هست. ( چرا یک ؟ چون مدیر یک باید فقط به اطلاعات خودش دسترسی داشته باشه، اگه مثلا قلی میخواست دسترسی داشته باشه باید دو باشه‌‌. )
اگه adminID در جدول آموزشگاه ها برابر با adminID مدیری که وارد شده هست نباشه یعنی نباید دسترسی بدی، اگه برابر بود که یعنی اون مالک هست و میتونه تغییرات بده.
دیگه نصف شب هست اگه کمی کاستی و مشکل گرامری داشت ببخش :دی ! ایشالا فردا خدمت میرسم اگه سوال داشتی .
غایب
  پاسخ
تشکر شده توسط : webnevesht
#5
جدول زیر رو در نظر بگیرید
کد پی‌اچ‌پی:
schools table
--------------------------------------------------
school_id school_name modir_id
    1      
|      school1    |    1
    2      
|     school2     |    2
---------------------------------------------------


modir table
-------------------------------------------------------
modir_id modir_name  
     1    
|     gholy
     2    
|     khoeple
--------------------------------------------------------- 
حالا وقتی می خوای برای مدیر شماره یک آموزشگاهشو دربیاری نشونش بدی باید تو sql این طوری select بنویسی
کد پی‌اچ‌پی:
SELECT FROM school WHERE modir_id=1

و وقتی می خوای تغییراتی رو که مدیر شماره یک تو مدرسه خودش که آی دی ش یک هست ثبت کنی دستور update این طوری می شه:
کد پی‌اچ‌پی:
UPDATE school SET school_name='edited_name' WHERE school_id='1' AND modir_id='1'

نیازی به توضیح نیست که معمولا ای دی مدرسه رو تو صفحه ویرایش تو یه فیلد مخفی نگه میدارن و آی دی مدیر معمولا توی سزشن یا کوکی و با ورود مدیر ذخیره می شه.
  پاسخ
تشکر شده توسط : webnevesht


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان