2-19- cómo expresar la herencia en la base de datos orientada a objetos

1. EAV 表 (entidad-atributo-valor)

2. Single Tabla Inheritance

3. La herencia de tablas entidad

4. Clase Tabla Inheritance

5. Diseño Semi-estructurada

 

 

1. EAV 表 (entidad-atributo-valor)

   note_dictionary CreateTable

   (

     dictionary_idnumber,

     varchar2 dictionary_type (50), - el registro de este tipo, es que más de 20 registros de la presente

     varchar2 dictionary_name (200) - este es el nombre de la grabación

    );

   - almacenar registros este contenido

 

   note_content CreateTable

   (

    content_idnumber,

    número note_id, - un ID de registro específico de la presente

    dictionary_idnumber, - la grabación de este campo id

    Contenido del campo - contentvarchar2 (1000)

   );

 

superioridad

1. flexible, supresiones campo no es necesario modificar la estructura de las tablas de bases de datos. Independientemente de la existencia de herencia de entidades, puede utilizar almacenado EAV.

2. Diseño de una tabla de base de datos sencilla (id, attr_name, valor)

 

desventajas:

1. Tipo de valor de la propiedad no puede ser limitado. Si usted es Fecha y número, sólo se puede expresar en varchar2. Las estadísticas también puede ser un problema

2. No añadir restricciones y valores por defecto de no nula.

3. Los datos post-mantenimiento más difícil.

4. Si existe una relación entre este registro, establecer relaciones, necesita agregar la mesa para lograr muy complejo.

5. La tabla de contenido después de algún tiempo llegará a ser muy pesada, en el caso de los que la cantidad de datos del sistema.

6. afectan de hecho todo el cuerpo. Una modificación no puede determinar si los afectados en otros lugares. código Java utilizando la reflexión, depurar difíciles de depurar, difícil de localizar el problema

7. consultas complejas se complicará.

8. sacrificar los beneficios de una misma base de datos relacional

9. La comprobación de integridad no puede utilizar características (clave externa)

 

2. Single Tabla Inheritance

Los hereda entidad todos los atributos del sistema se almacenan en una tabla,

atributos de la entidad son los siguientes:

Diseño de base de datos de la siguiente manera:

tabla de usuario:

superioridad

    Base de datos de diseño simple

    La lista no tiene que consulta para obtener información completa sobre las subclases

    Evitar una gran cantidad de defectos de diseño EAV

 

perjudicado

    Cuando la adición de un usuario para modificar las propiedades de la Tabla subclase (tabla de bloqueo, la influencia es gran cantidad de datos)

    Para subclases, atributos no relacionados aparecen en la tabla, tales como la línea aparecido student_number del maestro, los estudiantes de los Aparece línea sujeta

 

escenarios de uso:

neutrones menos característica de la clase de situación sistema de herencia. Por ejemplo, dentro de un tiempo previsible atributos subclase son relativamente poco tiempo se puede utilizar de esta manera, después de todo, una simple consulta, la consulta no necesita tablas de contingencia.

 

3. La herencia de tablas entidad

La propiedad es una entidad completa, la herencia de tablas de entidad, que cada entidad corresponde a una mesa llena.

Este diseño ventajas y desventajas:

superioridad

1. Para un objeto completo no necesita consulta de tabla de contingencia

2. La tabla no atributos no relacionados (compárese con la única herencia de tablas)

perjudicado

1. La necesidad de modificar la clase base una pluralidad de mesa al agregar atributos (atributos tales como la clase de cumpleaños para agregar usuarios, es necesario maestro / estudiante tablas se añaden columna)

2. La estructura abierta de la mesa, no hay herencia de clases mirada

 

4. Clase Tabla Inheritance

A continuación, el diseño de la tabla de base de datos también tiene tres tablas: tabla de usuario, tablas de maestros, tablas de estudiantes (maestro y mesa de ping-estudiante tiene una clave externa), de la siguiente manera:

superioridad

Una clara jerarquía de tablas de bases de datos, tablas de bases refleja directamente la herencia

Cuando ninguna modificación es una subclase de la tabla de clase de base (tabla de usuario) al añadir el atributo, la clase base no necesita añadir atributos para múltiples tablas de la columna Agregar

No necesita consultar una pluralidad de tablas (esquema de herencia de tablas entidad comparativo) cuando un mensaje de consulta del maestro de la clase base, de los estudiantes

 

perjudicado

Obtiene el objeto que necesita consultas de tablas de datos completos asociados (cuando grandes volúmenes de tablas de datos con diferencia de rendimiento consulta de tabla)

 

 

5. Diseño Semi-estructurada

other_properties campo, el objeto se almacena para el profesor {subject = Inglés}, sujeta al depósito estudiante: {student_number = 123}

Así que cuando se consulta toda la investigación completa registro en la memoria y luego se convierte en un objeto.

superioridad

Escalabilidad, al agregar una columna para añadir necesidad propiedad secundaria, la adición se añadirá a la base de la columna atributos de clase

consultas simples, cada fila corresponde a la información completa de un objeto, sin vinculación consulta de tabla

 

perjudicado

parte no estructurada del problema sigue ahí EAV diseño

Objeto nombre de atributo no hay restricciones (MySQL no definido por el usuario llamado nombre de usuario, una pequeña empresa no se sienten como el nombre de usuario)

No se puede restringir el tipo del valor del atributo (edad no está definida tipo int, el tráfico puede no sentir una pequeña 'abc' en)

Obtiene un único engorroso de datos de objetos (un objeto de consulta completa, lo que necesita para obtener múltiples registros no se pueden asignar directamente al objeto de usuario)

función de comprobación de integridad no se puede utilizar (no es una clave externa)

DB parte no estructurada inservible de las funciones de agregado (como suma, conteo, etc.)

Publicados 137 artículos originales · ganado elogios 2 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/m0_37302219/article/details/104872832
Recomendado
Clasificación