Questa mi serve per creare vari gruppi di utenza:
codice:
-- phpMyAdmin SQL Dump
-- version 4.2.7.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Dic 04, 2014 alle 14:02
-- Versione del server: 5.6.20
-- PHP Version: 5.5.15
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `black_skip_db`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `t_staff_groups`
--
CREATE TABLE IF NOT EXISTS `t_staff_groups` (
`id` int(11) NOT NULL COMMENT 'ID gruppo',
`name` varchar(20) NOT NULL COMMENT 'Nome del gruppo'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Tabella dei gruppi utente' AUTO_INCREMENT=6 ;
--
-- Dump dei dati per la tabella `t_staff_groups`
--
INSERT INTO `t_staff_groups` (`id`, `name`) VALUES
(1, 'bs_site_admin'),
(2, 'manutentori'),
(3, 'elettricisti'),
(4, 'pubbliche relazioni'),
(5, 'impiegati');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `t_staff_groups`
--
ALTER TABLE `t_staff_groups`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `t_staff_groups`
--
ALTER TABLE `t_staff_groups`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID gruppo',AUTO_INCREMENT=6;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Questa mi serve per creare un elenco di pagine alle quali assocerò, in un' altra tabella, gli utenti che le possono visualizzare (e che ha la chiave primaria da inserire nell' altra tabella che non mi crea la foregn key:
codice:
-- phpMyAdmin SQL Dump
-- version 4.2.7.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Dic 04, 2014 alle 14:06
-- Versione del server: 5.6.20
-- PHP Version: 5.5.15
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `black_skip_db`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `t_indexing_pages`
--
CREATE TABLE IF NOT EXISTS `t_indexing_pages` (
`id` bigint(20) NOT NULL COMMENT 'ID pagina',
`name` text NOT NULL COMMENT 'Nome della pagina es. miapagina.php'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Dump dei dati per la tabella `t_indexing_pages`
--
INSERT INTO `t_indexing_pages` (`id`, `name`) VALUES
(1, 'home_expenses.php'),
(2, 'expenses_in.php');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `t_indexing_pages`
--
ALTER TABLE `t_indexing_pages`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `t_indexing_pages`
--
ALTER TABLE `t_indexing_pages`
MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID pagina',AUTO_INCREMENT=3;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Questa tabella associa id utente a id gruppo:
codice:
-- phpMyAdmin SQL Dump
-- version 4.2.7.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Dic 04, 2014 alle 14:09
-- Versione del server: 5.6.20
-- PHP Version: 5.5.15
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `black_skip_db`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `t_staff_groups_account_association`
--
CREATE TABLE IF NOT EXISTS `t_staff_groups_account_association` (
`id` int(11) NOT NULL COMMENT 'ID riga',
`id_group` int(11) NOT NULL COMMENT 'ID gruppo (chiave esterna -> t_staff_groups.id)',
`id_staff` int(11) NOT NULL COMMENT 'ID utente (chiave esterna -> t_staff.id_staff'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Dump dei dati per la tabella `t_staff_groups_account_association`
--
INSERT INTO `t_staff_groups_account_association` (`id`, `id_group`, `id_staff`) VALUES
(1, 2, 78);
--
-- Indexes for dumped tables
--
--
-- Indexes for table `t_staff_groups_account_association`
--
ALTER TABLE `t_staff_groups_account_association`
ADD PRIMARY KEY (`id`), ADD KEY `id_group` (`id_group`,`id_staff`), ADD KEY `id_staff` (`id_staff`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `t_staff_groups_account_association`
--
ALTER TABLE `t_staff_groups_account_association`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID riga',AUTO_INCREMENT=2;
--
-- Limiti per le tabelle scaricate
--
--
-- Limiti per la tabella `t_staff_groups_account_association`
--
ALTER TABLE `t_staff_groups_account_association`
ADD CONSTRAINT `t_staff_groups_account_association_ibfk_1` FOREIGN KEY (`id_group`) REFERENCES `t_staff_groups` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `t_staff_groups_account_association_ibfk_2` FOREIGN KEY (`id_staff`) REFERENCES `t_staff` (`id_staff`) ON DELETE CASCADE ON UPDATE CASCADE;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
E per finire questa tabella gestisce le eccezioni (nel caso in cui volessi mostrare comunque dei contenuti anche se non si fa parte del determinato gruppo) dove inserisco id utente e id pagina, ed è quella che non fa la foreign key del campo id_pagina:
codice:
-- phpMyAdmin SQL Dump
-- version 4.2.7.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Dic 04, 2014 alle 14:11
-- Versione del server: 5.6.20
-- PHP Version: 5.5.15
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `black_skip_db`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `t_exceptions_privileges_management`
--
CREATE TABLE IF NOT EXISTS `t_exceptions_privileges_management` (
`id` int(11) NOT NULL COMMENT 'ID riga',
`id_staff` int(11) NOT NULL,
`id_page` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Indexes for dumped tables
--
--
-- Indexes for table `t_exceptions_privileges_management`
--
ALTER TABLE `t_exceptions_privileges_management`
ADD PRIMARY KEY (`id`), ADD KEY `id_staff` (`id_staff`,`id_page`), ADD KEY `id_pagina` (`id_page`), ADD KEY `id_pagina_2` (`id_page`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `t_exceptions_privileges_management`
--
ALTER TABLE `t_exceptions_privileges_management`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID riga';
--
-- Limiti per le tabelle scaricate
--
--
-- Limiti per la tabella `t_exceptions_privileges_management`
--
ALTER TABLE `t_exceptions_privileges_management`
ADD CONSTRAINT `t_exceptions_privileges_management_ibfk_1` FOREIGN KEY (`id_staff`) REFERENCES `t_staff` (`id_staff`) ON DELETE CASCADE ON UPDATE CASCADE;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
in pratica, nella creazione dell' ultima tabella ci manca:
ALTER TABLE `t_exceptions_privileges_management`
ADD CONSTRAINT `t_exceptions_privileges_management_ibfk_1` FOREIGN KEY (`id_pagina`) REFERENCES `t_indexing_pages`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
che non me la crea 
Grazie mille