How to make SQL many-to-many same-type relationship table -


i'm newbie sql , i'm jumping in head first trying learn as possible i'm coding, difficult i'm designing database i'll have live while want make sure right. learned basics of many-to-many bridge tables, if 2 fields same type? let's social network thousands of users, , how create table keep track of friends who? if there additional data each relationship, say... "date friended" example. knowing there queries "show friends of userx friended between datey , datez". database have several situations , can't figure out efficient way it. since it's coming lot me, figure others have figured out best way design tables, right?

create user table relationships table store id of 2 friend , kind of information relationship.

sql diagram

sql diagram

mysql code

create table `users` (   `id` tinyint not null auto_increment default null,   primary key (`id`) );  create table `relationships` (   `id` tinyint not null auto_increment default null,   `userid` tinyint null default null,   `friendid` tinyint null default null,   `friended` timestamp not null default current_timestamp,   primary key (`id`) );  alter table `relationships` add foreign key (userid) references `users` (`id`); alter table `relationships` add foreign key (friendid) references `users` (`id`); 

sql selection

after fill tables data, can create sql select query of friends. friends id in 1 side side while id in other side. check both sides id don't need store relationships twice. have exclude id, because can't own friend (in normal, healthy world).

select * users u    inner join relationships r on u.id = r.userid    inner join relationships r on u.id = r.friendid    (r.userid = $myid or r.friendid = $myid)    , r.friended >= $startdate    , r.friended <= $enddate    , u.id != $myid; 

where $myid, $startdate , $enddate can php variables in double quotes can pass code directly database.


Comments

Popular posts from this blog

html - How to style widget with post count different than without post count -

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

IIS->Tomcat Redirect: multiple worker with default -