ورود

View Full Version : مشکل با جدول کاربران و دوستان هر کاربر



myazdani
سه شنبه 10 دی 1392, 20:30 عصر
با سلام و احترام

یک جدول کاربران سیستم دارم. می خواهیم هر کاربر بتواند تعدادی از کاربران را به لیست دوستان خود اضافه کند. به همین منظور جدول دیگری به نام دوست تعریف شده که در آن MyId کلید خارجی از جدول کاربران است و MyFriendId هم کد کاربر دوست است. به ازای هر رابطه دوستی یک رکورد در این جدول درج می شود.

آیا این طراحی درست هست یا راههای بهتری هم وجود داره؟

با تشکر

حمیدرضاصادقیان
چهارشنبه 11 دی 1392, 22:01 عصر
سلام.
آیا دو کد به یک جدول ارتباط دارند ؟‌یعنی هردو کد مربوط به جدول کاربران هست؟

myazdani
چهارشنبه 11 دی 1392, 22:10 عصر
تشکر از پاسخ شما.

جدول کاربران شامل (Name,UserName,PassWord,UserId) جدول دوستان شامل(FriendId,UserId,MyFriendId) هست. که در جدول دوستان userid کد هر کاربر هست که کلید خارجی از جدول کاربران محسوب میشه و Myfriendid هم قاعدتاً از جدول کاربران هست و Friendid هم کار خاصی انجام نمیده و فقط کلید اصلی جدول هست برای اینکه جدول نرمال باشه(Auto Number)!
ولی به نظرم صحیح نیست اما راه حل دیگه ای هم به ذهنم نمی رسه.

myazdani
یک شنبه 15 دی 1392, 15:54 عصر
دوستان جوابش رو پیدا کردم
برای اینکه تاپیک بی جواب نماند جدول کاربران:
create table users ( user_id int unsigned not null auto_increment primary key, username varchar(32) unique not null, created_date datetime not null )

جدول دوستان هر کاربر
create table user_friends ( user_id int unsigned not null, friend_user_id int unsigned not null, created_date datetime not null, primary key (user_id, friend_user_id), foreign key (user_id) references users(user_id), foreign key (friend_user_id) references users(user_id) )

منبع سایت Stackoverflow