BuddyPress can be used as a framework – it allows you to friend other users, and is a good place to start from.
[Update]
This is the structure of the BuddyPress friends table (bp_friends)
CREATE TABLE `wp_bp_friends` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`initiator_user_id` bigint(20) NOT NULL,
`friend_user_id` bigint(20) NOT NULL,
`is_confirmed` tinyint(1) DEFAULT '0',
`is_limited` tinyint(1) DEFAULT '0',
`date_created` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `initiator_user_id` (`initiator_user_id`),
KEY `friend_user_id` (`friend_user_id`)
);