Created
June 23, 2021 10:52
-
-
Save hbruno/b0f931cf638ad1390b5d7766c49a3dea to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
MODELOS | |
# Basico, los campos conocidos y un json con TODO lo demás, cada cliente tiene su propia definicion. | |
class ModelA: | |
created_at | |
amount | |
metadata = JSON_FIELD | |
# Semantico, cada cliente define que significa cada campo para el, | |
# por ej el field_int_1 es la cantidad de transacciones. | |
# Performante, simple, pero depende de la semantica | |
class ModelB: | |
created_at | |
amount | |
field_int_1 | |
field_float_1 | |
field_str_1 | |
# Generico, en lugar de tener un json para guardar la metadata se tiene un listado de generic fields | |
# No performa, complejo | |
class ModelC: | |
create_at | |
amount | |
fields = List(GenericFields) | |
# Polimorfico, tenemos 1 sola tabla y cada cliente extiende con sus propios fields. | |
# https://django-polymorphic.readthedocs.io/en/stable/ | |
# Puede fallar la performance, simple | |
class Client(PolymorphicModel): | |
create_at | |
amount | |
class ClientA(Client): | |
amount = | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment