4.- Tabla Permisos

SQL Code

Proyecto Profesional PHP / MVC / 3 Capas

La tabla Permisos indica qué acciones puede realizar un perfil sobre una entidad determinada, así para cada Entidad / Perfil tenemos los siguientes permisos:

  • Listar: El usuario podrá listar elementos de la entidad
  • Consultar: El usuario podrá consultar los valores de una entidad
  • Editar: El usuario podrá modificar los datos de la entidad.
  • Eliminar: El usuario podrá eliminar una entidad
  • Crear: El usuario podrá crear una nueva entidad
  • Imprimir: El usuario podrá imprimir los datos de la entidad
  • Enviar: El usuario podrá enviar por email los datos de la entidad

Cada permiso puede ser público, (aplicable a todos) o privado (aplicable sólo al creador del documento).

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
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 utf8mb4 */;


-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `adm_permisos`
--

CREATE TABLE `adm_permisos` (
  `permiso_id` smallint(5) UNSIGNED NOT NULL,
  `permiso_perfil_id` tinyint(3) UNSIGNED NOT NULL,
  `permiso_entidad_id` smallint(5) UNSIGNED NOT NULL,
  `permiso_listar` tinyint(1) NOT NULL,
  `permiso_consultar` tinyint(1) NOT NULL,
  `permiso_editar` tinyint(1) NOT NULL,
  `permiso_eliminar` tinyint(1) NOT NULL,
  `permiso_crear` tinyint(1) NOT NULL,
  `permiso_imprimir` tinyint(1) NOT NULL,
  `permiso_enviar` tinyint(1) NOT NULL,
  `permiso_privado` tinyint(1) NOT NULL,
  `permiso_publico` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Volcado de datos para la tabla `adm_permisos`
--

INSERT INTO `adm_permisos` (`permiso_id`, `permiso_perfil_id`, `permiso_entidad_id`, `permiso_listar`, `permiso_consultar`, `permiso_editar`, `permiso_eliminar`, `permiso_crear`, `permiso_imprimir`, `permiso_enviar`, `permiso_privado`, `permiso_publico`) VALUES
(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(4, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(6, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(7, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(9, 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(10, 2, 3, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(11, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(12, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(13, 1, 4, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(14, 2, 4, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(15, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(16, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(17, 1, 5, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(18, 2, 5, 1, 1, 1, 0, 0, 1, 0, 0, 1),
(19, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(20, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(21, 1, 6, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(22, 2, 6, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(23, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(24, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(25, 1, 7, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(26, 2, 7, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(27, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(28, 4, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(29, 1, 8, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(30, 2, 8, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(31, 3, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(32, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(33, 1, 9, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(34, 2, 9, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(35, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(36, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(37, 1, 10, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(38, 2, 10, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(39, 3, 10, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(40, 4, 10, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(41, 1, 11, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(42, 2, 11, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(43, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(44, 4, 11, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(45, 1, 12, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(46, 2, 12, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(47, 3, 12, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(48, 4, 12, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(49, 1, 13, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(50, 2, 13, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(51, 3, 13, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(52, 4, 13, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(53, 3, 13, 1, 1, 1, 0, 0, 0, 0, 1, 0),
(54, 1, 14, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(55, 2, 14, 1, 1, 1, 0, 0, 0, 0, 0, 1),
(56, 3, 14, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(57, 4, 14, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(58, 3, 14, 1, 1, 1, 1, 1, 0, 0, 1, 0),
(59, 1, 15, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(60, 2, 15, 1, 1, 1, 1, 0, 0, 0, 0, 1),
(61, 3, 15, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(62, 4, 15, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(63, 1, 16, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(64, 2, 16, 1, 1, 1, 1, 0, 1, 1, 0, 1),
(65, 3, 16, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(66, 4, 16, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(67, 1, 17, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(68, 2, 17, 1, 1, 1, 1, 0, 1, 1, 0, 1),
(69, 3, 17, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(70, 4, 17, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(71, 1, 18, 1, 1, 1, 1, 1, 1, 1, 0, 1),
(72, 2, 18, 1, 1, 0, 0, 0, 1, 1, 0, 1),
(73, 3, 18, 0, 0, 0, 0, 0, 0, 0, 0, 1),
(74, 4, 18, 0, 0, 0, 0, 0, 0, 0, 0, 1);

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `adm_permisos`
--
ALTER TABLE `adm_permisos`
  ADD PRIMARY KEY (`permiso_id`),
  ADD KEY `Idx_permiso_entidad_id` (`permiso_entidad_id`) USING BTREE,
  ADD KEY `idx_permiso_perfil_id` (`permiso_perfil_id`) USING BTREE;

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `adm_permisos`
--
ALTER TABLE `adm_permisos`
  MODIFY `permiso_id` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=75;

--
-- Restricciones para tablas volcadas
--

--
-- Filtros para la tabla `adm_permisos`
--
ALTER TABLE `adm_permisos`
  ADD CONSTRAINT `fk_permiso_entidad_id` FOREIGN KEY (`permiso_entidad_id`) REFERENCES `adm_entidades` (`entidad_id`),
  ADD CONSTRAINT `fk_permiso_perfil_id` FOREIGN KEY (`permiso_perfil_id`) REFERENCES `adm_perfiles` (`perfil_id`);
COMMIT;

/*!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 */;