正确的谷歌圈子等群组的数据库实施

时间:2013-07-22 14:50:19

标签: mysql database-design inner-join foreign-key-relationship database-normalization

create table USERS (  
    PK_USER int not null auto_increment primary key,  
    EMAIL varchar(100) not null,  
    PASSWORD char(40) not null  
);  

create table CIRCLES (  
    PK_CIRCLE int not null auto_increment primary key,   
    CIRCLE varchar(45),  
    FK_CREATOR int,  
    foreign key(FK_CREADOR) references USERS(PK_USER)     
);  

create table MEMBERS (  
    FK_MEMBERS int,  
    FK_CIRCLES int,  
    foreign key(FK_MEMBER) references USERS(PK_USER),  
    foreign key(FK_CIRCLE) references CIRCLES(PK_CIRCLE)  
);  

PK_USER进行双重引用是否正确? (对于参考USERS = USUARIOS,成员= MIEMBROS,CIRCLES = CIRCULOS,CREATOR = CREADOR)

1 个答案:

答案 0 :(得分:0)

我可以“推断”他们扮演两个不同的角色:

  1. 在CIRCULOS中,您正在跟踪世卫组织是否已完成实体的配置
  2. 在MIEMBROS中,您正在跟踪“会员”关系(多对多关系)
  3. 所以:如果那些是你的意图,那你就没事了。)