现在需要做一个类似于sns的网站,但是权限要求特别严格,对于所有的blog、图片、留言等一系列的东西都要求能够制定可见的好友。我想到了以下几个方案,大家一起讨论讨论。方案一:
使用联合主键,用一张总表控制所有的权限关系。表结构如下:create table 'premission' (
'id' int(15) unsigned NOT NULL,
'type' int(2) unsigned NOT NULL,
'uid' int(10) unsigned NOT NULL,
PRIMARY KEY ('id', 'type', 'uid')
) ENGINE=MyISAM DEFAULT CHARSET=utf8;这张表主要字段就是这三个,用于控制一对多的权限。id为blog、图片等id,type为类型,比如blog为1,图片为2等。第三个就是允许可见的用户id。方案二:
就是用外键连接两张表,处理此关系。方案三:
使用拼接字符串的办法来控制,表结构如下:create table 'premission' (
'id' int(15) unsigned NOT NULL,
'type' int(2) unsigned NOT NULL,
'uids' int(10) unsigned NOT NULL,
PRIMARY KEY ('id')
) ENGINE=MyISAM DEFAULT CHARSET=utf8;这样在uids中可以保存像“1, 2, 3, 6, 8, 14”这样的数组,到时候用php处理分割之后操作。大家看看那种方案可取呢?或者是还有另外更好的方案?可以的话追加分数哦~
使用联合主键,用一张总表控制所有的权限关系。表结构如下:create table 'premission' (
'id' int(15) unsigned NOT NULL,
'type' int(2) unsigned NOT NULL,
'uid' int(10) unsigned NOT NULL,
PRIMARY KEY ('id', 'type', 'uid')
) ENGINE=MyISAM DEFAULT CHARSET=utf8;这张表主要字段就是这三个,用于控制一对多的权限。id为blog、图片等id,type为类型,比如blog为1,图片为2等。第三个就是允许可见的用户id。方案二:
就是用外键连接两张表,处理此关系。方案三:
使用拼接字符串的办法来控制,表结构如下:create table 'premission' (
'id' int(15) unsigned NOT NULL,
'type' int(2) unsigned NOT NULL,
'uids' int(10) unsigned NOT NULL,
PRIMARY KEY ('id')
) ENGINE=MyISAM DEFAULT CHARSET=utf8;这样在uids中可以保存像“1, 2, 3, 6, 8, 14”这样的数组,到时候用php处理分割之后操作。大家看看那种方案可取呢?或者是还有另外更好的方案?可以的话追加分数哦~
解决方案 »
- Mysql 查询
- if then else的问题
- mysql关于update的问题
- 字符转义存入数据库的问题,高手进来哦
- MySQL show variables的疑问
- 我数据库设置的是UTF8编码,但页面显示中是动态的charset,即,根据不同语言,可能是gb2312,也可能是utf8,该如何处理??
- 怎么写个SQL,复制一张表成另一个新表。(最好SQlite能用)
- 不知道本版中有人会处理这个问题吗????(在线观看中)
- 新手提问,大家看看!
- 默认隔离级别下update后面跟where是否能保证条件成立呢
- aws上的mysql数据库服务器设置夏令时?偏移了一个小时,现在如何改?
- 菜鸟救助了。。。
用户id 好友id
1 6
1 8
......