نمایش نتایج 1 تا 6 از 6

نام تاپیک: حذف یک رکورد و حذف رکوردهای متناظر با آن در جدول دیگر

  1. #1

    حذف یک رکورد و حذف رکوردهای متناظر با آن در جدول دیگر

    سلام
    من دارم یه سایت طراحی میکنم که توش بخش نظرات و جعبه گفتگو داره
    یعنی هر کسی در صورت عضویت توی سایت میتونه نظر بذاره یا توی چت باکس مطلب بنویسه
    این جدولها رو دارم
    جدول Personal با فیلدهای :UserName,Name,Lname, ...(نام کاربری، نام و نام خانوادگی)
    جدول ChatBox با فیلدهای: ChatId,UserName,ChatContent (شماره چت، نام کاربری، محتوای چت)

    برای نمایش رکوردهای چت باکس این دستور رو نوشتم:

    SELECT Personal.FName + ' ' + Personal.Lname AS Name,ChatBox.ChatContent,
    ChatBox.ChatID
    FROM ChatBox INNER JOIN
    Personal ON ChatBox.UserName =Personal.UserName
    ORDER BY ChatBox.ChatID DESC

    با Inner Join که حالت انحصاریه دقیقا اگر رکوردهای متناظر توی دو تا جدول باشه نمایش داده میشه
    حالا من اگه بیام کاربری رو حذف کنم، با توجه به نوع Joinی که استفاده کردم، اصلا دیگه مطالب درج شده ش دیده نمیشه
    اگه از Left Join استفاده کنم، مطالبش دیده میشه و اسمش نمیاد
    حالا به نظر شما برای حذف یه کاربر، به مدیر سایت این امکان رو بدم چت باکسهای اون کاربر رو پاک کنه یا اینکه از همین Inner Join استفاده کنم که اگه کاربری حذف شد کلا مطالبش دیده نشه
    یا اینکه از همون اول موقع حذف یه کاربر تمامی ارسالهاش پاک بشه
    میخوام بدونم کدوم روش بهتر و بهینه تره

  2. #2
    کاربر دائمی
    تاریخ عضویت
    آبان 1385
    محل زندگی
    تهران
    پست
    1,112

    نقل قول: حذف یک رکورد و حذف رکوردهای متناظر با آن در جدول دیگر

    کاربر رو حذف فیزیکی نکنید. یه فیلد boolean به جدول کاربرها اضافه کنید که اگه true بود نشانه حذف شدن کاربر باشه.

  3. #3

    نقل قول: حذف یک رکورد و حذف رکوردهای متناظر با آن در جدول دیگر

    کاربر رو حذف فیزیکی نکنید. یه فیلد boolean به جدول کاربرها اضافه کنید که اگه true بود نشانه حذف شدن کاربر باشه
    در این حالت موقع لاگین کردن اجازه ورود به سایت به کاربر داده نمیشه اما برای نمایش مطالبش چطور عمل کنم؟
    یعنی توی اون قسمتها هم این بررسی انجام بشه که مثلا اگه این فیلد مقدارش True بود، مطالب ارسال شده این کاربر دیده نشه؟
    یا مثلا به هر طریقی کسی خواست به پروفایل این کاربر دسترسی داشته باشه، اطلاعات این کاربر دیده بشه یا نه؟
    ممنون از راهنماییتون
    یا اصلا بهتر بگم، منطقیه مطالب ارسال شده ی یه کاربر حذف شده یا به همین حالتی که شما گفتین غیرفعال شده، دیده بشه؟

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آبان 1385
    محل زندگی
    تهران
    پست
    1,112

    نقل قول: حذف یک رکورد و حذف رکوردهای متناظر با آن در جدول دیگر

    نقل قول نوشته شده توسط rana-writes مشاهده تاپیک
    در این حالت موقع لاگین کردن اجازه ورود به سایت به کاربر داده نمیشه اما برای نمایش مطالبش چطور عمل کنم؟
    یعنی توی اون قسمتها هم این بررسی انجام بشه که مثلا اگه این فیلد مقدارش True بود، مطالب ارسال شده این کاربر دیده نشه؟
    یا مثلا به هر طریقی کسی خواست به پروفایل این کاربر دسترسی داشته باشه، اطلاعات این کاربر دیده بشه یا نه؟
    ممنون از راهنماییتون
    یا اصلا بهتر بگم، منطقیه مطالب ارسال شده ی یه کاربر حذف شده یا به همین حالتی که شما گفتین غیرفعال شده، دیده بشه؟
    کاربری که حذف منطقی شده، یه کاربر حذف شده است فقط اطلاعات مربوط بهش هنوز توی دیتابیسه.
    این فیلد رو هر جا لازمه چک کنید. اینکه اطلاعات رو به طور فیزیکی پاک کنید یا نه بستگی داره به اینکه ممکنه بخواید به این اطلاعات بعدا دسترسی داشته باشید یا نه.
    حذف منطقی انجام بدید و زمانی که تاریخ مصرف داده ها کاملا تمام شد، حذف فیزیکی بکنید.

  5. #5

    نقل قول: حذف یک رکورد و حذف رکوردهای متناظر با آن در جدول دیگر

    ممنونم از راهنماییتون
    اما یه سوال دیگه
    به نظر شما کدوم حالت معمول تره و توی سایتها اجرا میشه؟
    اینکه کاربر کاملا حذف بشه با کل اطلاعاتش
    یا همونطور که گفتین به شکل منطقی حذف بشه و بعدا فیزیکی حذف بشه؟
    مثلا توی همین فروم، اگه کاربری حذف بشه اطلاعاتش چی میشه؟
    تاپیکها و پستها و تشکرهایی که ایجاد کرده اینا هم حذف میشن؟

  6. #6
    کاربر دائمی
    تاریخ عضویت
    آبان 1385
    محل زندگی
    تهران
    پست
    1,112

    نقل قول: حذف یک رکورد و حذف رکوردهای متناظر با آن در جدول دیگر

    نقل قول نوشته شده توسط rana-writes مشاهده تاپیک
    ممنونم از راهنماییتون
    اما یه سوال دیگه
    به نظر شما کدوم حالت معمول تره و توی سایتها اجرا میشه؟
    اینکه کاربر کاملا حذف بشه با کل اطلاعاتش
    یا همونطور که گفتین به شکل منطقی حذف بشه و بعدا فیزیکی حذف بشه؟
    مثلا توی همین فروم، اگه کاربری حذف بشه اطلاعاتش چی میشه؟
    تاپیکها و پستها و تشکرهایی که ایجاد کرده اینا هم حذف میشن؟
    اینجا رو نمی دونم. اما به دو چیز بستگی داره 1. اینکه اطلاعات اونقدر مهم هست که بخواید روزی دوباره سراغش بیاید؟ و 2. اندازه دیتابیس
    اگه اطلاعات بی ارزشه، پاکش کنید.

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •