sql >> Base de Datos >  >> RDS >> Mysql

¿Dos tablas con las mismas columnas o una tabla con una columna adicional?

Depende de las restricciones:

  • ¿Tiene claves foráneas o CHECK en apples? que no existen en oranges (o viceversa)?
  • ¿Necesita mantener claves únicas en ambas tablas (por lo que no apple puede tener el mismo ID que algunos orange )?

Si las respuestas a estas dos preguntas son:"sí" y "no" , mantenga las tablas separadas (para que las restricciones se puedan hacer específicas de la tabla).

Si las respuestas son:"no" y "sí" , combínelos (para que pueda crear una clave que abarque ambos).

Si las respuestas son:"sí" y "sí" , considere emular la herencia:

Buscar datos es un ejemplo típico de tablas que parecen similares, pero deben mantenerse separadas para que los FK puedan mantenerse separados.

Específicamente, esta es la estrategia de "todas las clases en tablas separadas" para representar la herencia (también conocida como categoría, subclases, subtipos, jerarquía de generalización, etc.). Es posible que desee echar un vistazo a esta publicación para más información.