¿Hay problemas con esta solución 'Soft Delete' al usar tablas EAV?

He leído alguna información sobre el lado feo de solo configurar unadeleted_at en sus tablas para indicar que se ha eliminado una fila.

A sabe
http: //richarddingwall.name/2009/11/20/the-trouble-with-soft-delete

¿Hay algún problema potencial al tomar una fila de una tabla que desea eliminar y girarla en algunas tablas EAV?

Por ejemplo

Dejemos que tengo dos mesasdeleted ydeleted_row respectivamente se describe como sigue.

    mysql> describe deleted;
    +------------+--------------+------+-----+---------+----------------+
    | Field      | Type         | Null | Key | Default | Extra          |
    +------------+--------------+------+-----+---------+----------------+
    | id         | int(11)      | NO   | PRI | NULL    | auto_increment | 
    | tablename  | varchar(255) | YES  |     | NULL    |                | 
    | deleted_at | timestamp    | YES  |     | NULL    |                | 
    +------------+--------------+------+-----+---------+----------------+

    mysql> describe deleted_rows;
    +--------+--------------+------+-----+---------+----------------+
    | Field  | Type         | Null | Key | Default | Extra          |
    +--------+--------------+------+-----+---------+----------------+
    | id     | int(11)      | NO   | PRI | NULL    | auto_increment | 
    | entity | int(11)      | YES  | MUL | NULL    |                | 
    | name   | varchar(255) | YES  |     | NULL    |                | 
    | value  | blob         | YES  |     | NULL    |                | 
    +--------+--------------+------+-----+---------+----------------+

Ahora, cuando desea eliminar una fila de cualquier tabla, la eliminaría de la tabla y luego insertarla en estas tablas como tal.

    deleted
    +----+-----------+---------------------+
    | id | tablename | deleted_at          |
    +----+-----------+---------------------+
    |  1 | products  | 2011-03-23 00:00:00 | 
    +----+-----------+---------------------+

    deleted_row
    +----+--------+-------------+-------------------------------+
    | id | entity | name        | value                         |
    +----+--------+-------------+-------------------------------+
    |  1 |      1 | Title       | A Great Product               | 
    |  2 |      1 | Price       | 55.00                         | 
    |  3 |      1 | Description | You guessed it... it's great. | 
    +----+--------+-------------+-------------------------------+

Algunas cosas que veo desde el principio.

Necesitará usar la lógica de la aplicación para hacer el pivote (Ruby, PHP, Python, etc.) La mesa podría crecer bastante grande porque estoy usandoblob para manejar el tamaño desconocido del valor de fila

¿Ves algún otro problema evidente con este tipo de borrado suave?

Respuestas a la pregunta(1)

Su respuesta a la pregunta