0

我想问你们是否可以审查我的数据库设计。我认为这是不言自明的,但要绝对清楚:

我的目标是制作一个应用程序,它具有超级灵活的用户管理(这就是为什么组是树形的并且组和用户具有 habtm 关系)和构建页面的超级模块化方式(这就是为什么页面包含小部件块)。

我将用户和配置文件分开的原因是因为用户表不会更改,并且仅用于身份验证和授权。但是,配置文件表将根据客户的意愿进行更改。所以它可能没有签名,而是一个头像字段。或者它可能完全是空的/根本不存在。

小部件可以是任何东西,可以是投票,可以是一段内容,可以是导航,也可以是评论集合,等等。

我选择将子域、区域设置和布局分开表而不是仅仅将名称放入页面的原因是因为我想限制客户端可用的选项。仅仅因为我的布局文件夹中有一个三列.ctp 并不一定意味着我希望客户能够选择它。

小部件也是如此。除了限制选择之外,并不是我的插件文件夹中的每个插件、控制器和操作都是小部件,所以我需要一个表格来说明哪些是小部件。

块是页面上的小部件,它位于由索引决定的特定位置的容器(例如,3 列布局中的右列)(较低的索引意味着较高)。

这就是我的解释,你们怎么看?这是最好的吗?或者您是否有 (a) 建议以使其更加灵活和模块化。

[编辑] 哦,要清楚一点,小部件当然会有自己的表格来存储他们需要存储的信息。

4

1 回答 1

0

好吧,我认为除了“个人资料”之外,一切都很好。

当您尝试从登录用户获取数据时:

$this->Auth->user();

我认为您不会获得有关“个人资料”的数据,因此您必须通过 $this->Auth->user('id') 等查找个人资料。我认为您应该合并“个人资料”和“用户”表转换为“用户”表。

所以当你想保存时,比如说“签名”,你应该把它放在 $this->request->data; 并调用 $this->User->save($this->request->data); 并且签名将被更新。

编辑:

您可以保持原样,但是要获取用户以外的其他数据,您必须输入:

$id = $this->Auth->user('id');
$current_user = $this->User->findById($id);
于 2012-08-01T23:20:38.423 回答