You should clean up your table schema, first to get them in line with
Cake's conventions. It'll save you lots of headaches down the road.

CREATE TABLE staffs (
 id int(11) NOT NULL auto_increment,
 department_id int(11) default NULL,
 logon_code char(10) NOT NULL,
 forename char(50) NOT NULL,
 surname char(50) NOT NULL,
 PRIMARY KEY  (id),
) ;

CREATE TABLE managers (
 id int(11) NOT NULL auto_increment,
 logon_code varchar(15) NOT NULL,
 department_id int(11) default NULL,
 SystemAdmin tinyint(1) unsigned default NULL,
 PRIMARY KEY  (id)
) ;

CREATE TABLE departments (
 id int(11) default NULL,
 sect_id varchar(50) default NULL,
 subsect_id varchar(50) default NULL,
 sect_name varchar(50) default NULL,
 sect_abbr varchar(50) default NULL,
 subsect_name varchar(50) default NULL,
 PRIMARY KEY  (id)
) ;

- all table names are lowercase, plural forms of the model

- all PK are 'id int(11) NOT NULL auto_increment'

- all FK are singular table name + '_id' (eg. department_id)


If departments.sect_id is a FK to another table, it should be
section_id and the table named sections (assuming thatsect is short
for section).

I guess staffs isn't the greatest name. Maybe members would be better.

On Wed, Jun 3, 2009 at 6:26 AM, Jenski <[email protected]> wrote:
>
> I have a database setup like this (I know it isnt the best setup but
> its out of my power to change it :-(
>
> Basically there are 3 levels of users
> - Admin
> - Managers
> - Staff
>
> Few notes:
> -Each member of staff belongs to department
> -If the Staffs logon_code appears in the manager table they are a
> Manager, otherwise they are a member of staff
> -If the staffs logon_code appears in the manager table and SystemAdmin
> is set to 1, they are Admin
>
> How on earth do I go about setting ACL/Auth for this? Any ideas?
>
> CREATE TABLE `tblStaff` (
>  `StaffID` int(11) NOT NULL auto_increment,
>  `dept_id` varchar(5) default NULL,
>  `logon_code` char(10) NOT NULL,
>  `forename` char(50) NOT NULL,
>  `surname` char(50) NOT NULL,
>  PRIMARY KEY  (`StaffID`),
> ) ;
>
> CREATE TABLE `tblManager` (
>  `ManagerID` varchar(15) NOT NULL,
>  `logon_code` varchar(15) NOT NULL,
>  `dept_id` varchar(5) NOT NULL,
>  `SystemAdmin` tinyint(1) unsigned default NULL,
>  PRIMARY KEY  (`ManagerID`)
> ) ;
>
> CREATE TABLE `tblDepartment` (
>  `dept_id` varchar(5) NOT NULL,
>  `sect_id` varchar(50) default NULL,
>  `subsect_id` varchar(50) default NULL,
>  `sect_name` varchar(50) default NULL,
>  `sect_abbr` varchar(50) default NULL,
>  `subsect_name` varchar(50) default NULL,
>  PRIMARY KEY  (`dept_id`)
> ) ;
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to