Ir al contenido

Esquema de Base de Datos

Zentto utiliza una organizacion por schemas logicos que agrupan tablas por dominio funcional. Ambos motores (SQL Server y PostgreSQL) comparten la misma estructura.

SchemaDominioDescripcion
cfgConfiguracionEmpresas, sucursales, parametros del sistema
secSeguridadUsuarios, roles, permisos, tokens
masterMaestrosClientes, proveedores, empleados, productos
arCuentas por CobrarDocumentos de venta, cobros, abonos
apCuentas por PagarDocumentos de compra, pagos
acctContabilidadPlan de cuentas, asientos, periodos, activos fijos
invInventarioAlmacenes, stock, lotes, seriales, movimientos
posPunto de VentaSesiones, ventas POS, cierres de caja
restRestauranteMesas, ordenes, recetas, componentes
finFinanzasBancos, movimientos bancarios, conciliacion, caja chica
hrRecursos HumanosEstructura organizacional, beneficios, salud ocupacional
payPagosPasarela de pagos (Paddle), suscripciones
storeEcommerceTienda online, categorias, variantes, carrito
fiscalFiscalRetenciones, libros fiscales, tributaria
auditAuditoriaLog de auditorias, trazabilidad de cambios
sysSistemaLogs, alertas, notificaciones, leads
logisticsLogisticaTransportistas, conductores, recepciones, despachos
crmCRMPipelines, leads, actividades, call center
mfgManufacturaBOM, centros de trabajo, ordenes de produccion
fleetFlotaVehiculos, combustible, mantenimiento, viajes

Almacena la configuracion multi-tenant del sistema.

TablaDescripcionColumnas clave
cfg.CompanyEmpresas registradasCompanyId, Name, RIF, CountryCode, TimeZone
cfg.BranchSucursales por empresaBranchId, CompanyId, Name, Address
cfg.AppSettingConfiguraciones por empresaCompanyId, SettingKey, SettingValue
cfg.CurrencyMonedas configuradasCurrencyId, Code, Name, ExchangeRate
cfg.TaxRateTasas impositivasTaxRateId, CompanyId, Name, Rate
cfg.SequenceSecuencias de numeracionCompanyId, DocumentType, Prefix, NextNumber

Relaciones: BranchCompany (N:1). Toda tabla de negocio referencia CompanyId y BranchId.

Gestion de usuarios, roles y permisos granulares.

TablaDescripcionColumnas clave
sec.UserUsuarios del sistemaUserId, CompanyId, Username, PasswordHash, Email
sec.RoleRoles de seguridadRoleId, CompanyId, Name, Description
sec.UserRoleAsignacion usuario-rolUserId, RoleId
sec.PermissionCatalogo de permisosPermissionId, ModuleCode, ActionCode, PermissionCode
sec.RolePermissionPermisos por rolRoleId, PermissionId, BranchId, IsGranted
sec.UserPermissionOverrideOverrides por usuarioUserId, PermissionId, IsGranted
sec.PriceRestrictionRestricciones de precioRoleId, MaxDiscountPercent, RequiresApprovalAbove
sec.ApprovalRuleReglas de aprobacionModuleCode, DocumentType, MinAmount, RequiredRoleId
sec.ApprovalRequestSolicitudes de aprobacionDocumentModule, DocumentNumber, Status

Relaciones: UserCompany (N:1), UserRoleUser+Role (N:N), RolePermissionRole+Permission (N:N).

Entidades maestras compartidas por multiples modulos.

TablaDescripcionColumnas clave
master.CustomerClientesCustomerId, CompanyId, Name, RIF, Email, Phone
master.SupplierProveedoresSupplierId, CompanyId, Name, RIF, Email
master.EmployeeEmpleadosEmployeeId, CompanyId, Name, Position, HireDate
master.ProductProductos/ServiciosProductId, CompanyId, Code, Name, Price, Cost
master.CategoryCategoriasCategoryId, CompanyId, Name, ParentId
master.BrandMarcasBrandId, CompanyId, Name
master.UnitUnidades de medidaUnitId, CompanyId, Code, Name
master.SellerVendedoresSellerId, CompanyId, EmployeeId, CommissionRate

Relaciones: ProductCategory, Brand, Unit. SellerEmployee. Todos filtrados por CompanyId.

Documentos de venta y gestion de cobros.

TablaDescripcionColumnas clave
ar.SalesDocumentDocumentos de venta (factura, nota, pedido, cotizacion, presupuesto, orden)SalesDocumentId, DocumentType, DocumentNumber, CustomerId, Total
ar.SalesDocumentDetailDetalle de lineasDetailId, SalesDocumentId, ProductId, Quantity, Price
ar.AccountReceivableSaldos por cobrarCustomerId, DocumentNumber, Balance, DueDate
ar.PaymentReceiptRecibos de cobroReceiptId, CustomerId, Amount, PaymentMethod

Relaciones: SalesDocumentCustomer (N:1), SalesDocumentDetailSalesDocument+Product (N:1).

Documentos de compra y gestion de pagos.

TablaDescripcionColumnas clave
ap.PurchaseDocumentDocumentos de compraPurchaseDocumentId, DocumentType, SupplierId, Total
ap.PurchaseDocumentDetailDetalle de lineasDetailId, PurchaseDocumentId, ProductId, Quantity, Cost
ap.AccountPayableSaldos por pagarSupplierId, DocumentNumber, Balance, DueDate
ap.PaymentVoucherOrdenes de pagoVoucherId, SupplierId, Amount

Plan de cuentas, asientos contables y reportes financieros.

TablaDescripcionColumnas clave
acct.AccountPlan de cuentasAccountId, CompanyId, Code, Name, AccountType, ParentId
acct.JournalEntryEncabezado de asientoJournalEntryId, EntryDate, Description, SourceModule, SourceDocumentNo, Status
acct.JournalEntryDetailLineas del asientoDetailId, JournalEntryId, AccountId, Debit, Credit
acct.AccountingPeriodPeriodos contablesPeriodId, CompanyId, Year, Month, Status
acct.CostCenterCentros de costoCostCenterId, CompanyId, Code, Name
acct.FixedAssetActivos fijosFixedAssetId, CompanyId, Name, AcquisitionValue, UsefulLife
acct.DepreciationEntryDepreciacionesEntryId, FixedAssetId, Amount, Period
acct.AccountTemplatePlantillas de asientosTemplateId, SourceModule, AccountMapping

Relaciones: JournalEntryDetailJournalEntry+Account (N:1). Account es jerarquica (arbol via ParentId).

Gestion de almacenes, stock y movimientos de inventario.

TablaDescripcionColumnas clave
inv.WarehouseAlmacenesWarehouseId, CompanyId, Name, Location
inv.WarehouseZoneZonas dentro del almacenZoneId, WarehouseId, Name, ZoneType
inv.WarehouseLocationUbicaciones especificasLocationId, ZoneId, Code, Name
inv.StockMovementMovimientos de stockMovementId, ProductId, WarehouseId, Quantity, MovementType
inv.LotLotes de productoLotId, ProductId, LotNumber, ExpiryDate
inv.SerialSeriales individualesSerialId, ProductId, SerialNumber, Status
inv.StockByLocationStock por ubicacionProductId, LocationId, QuantityOnHand
inv.ValuationValoracion de inventarioProductId, Method, UnitCost, TotalValue
inv.InventoryCloseCierres mensualesCloseId, CompanyId, Year, Month, Status

Operaciones de punto de venta.

TablaDescripcionColumnas clave
pos.SessionSesiones de cajaSessionId, UserId, OpenDate, CloseDate, Status
pos.SaleVentas POSSaleId, SessionId, CustomerId, Total, PaymentMethod
pos.SaleDetailDetalle de ventaDetailId, SaleId, ProductId, Quantity, Price
pos.CashCloseCierres de cajaCloseId, SessionId, ExpectedAmount, ActualAmount
pos.SaleOnHoldVentas en esperaHoldId, SessionId, Items, CustomerName

Extension del POS para restaurantes con mesas y recetas.

TablaDescripcionColumnas clave
rest.TableMesas del restauranteTableId, CompanyId, Number, Capacity, Status
rest.OrderOrdenes de mesaOrderId, TableId, WaiterId, Status, Total
rest.OrderDetailDetalle de ordenDetailId, OrderId, ProductId, Quantity
rest.RecipeRecetas (BOM de cocina)RecipeId, ProductId, Name
rest.RecipeComponentIngredientes de recetaComponentId, RecipeId, IngredientId, Quantity

Gestion bancaria, conciliacion y caja chica.

TablaDescripcionColumnas clave
fin.BankAccountCuentas bancariasBankAccountId, CompanyId, BankName, AccountNumber
fin.BankMovementMovimientos bancariosMovementId, BankAccountId, Amount, Type, JournalEntryId
fin.BankReconciliationConciliacionesReconciliationId, BankAccountId, Period, Status
fin.PettyCashCaja chicaPettyCashId, CompanyId, Name, Balance, Limit
fin.PettyCashMovementMovimientos caja chicaMovementId, PettyCashId, Amount, Description

Gestion del recurso humano mas alla de nomina.

TablaDescripcionColumnas clave
hr.DepartmentDepartamentosDepartmentId, CompanyId, Name
hr.PositionCargosPositionId, DepartmentId, Name, SalaryRange
hr.BenefitBeneficios laboralesBenefitId, CompanyId, Name, Type
hr.EmployeeBenefitAsignacion de beneficiosEmployeeId, BenefitId, StartDate
hr.VacationRequestSolicitudes de vacacionesRequestId, EmployeeId, StartDate, EndDate, Status
hr.OccupationalHealthSalud ocupacionalRecordId, EmployeeId, Type, Date
hr.LegalObligationObligaciones legalesObligationId, CompanyId, Type, DueDate

Integracion con pasarela de pagos.

TablaDescripcionColumnas clave
pay.SubscriptionSuscripcionesSubscriptionId, CompanyId, PlanId, Status
pay.TransactionTransaccionesTransactionId, SubscriptionId, Amount, Status
pay.PlanPlanes de suscripcionPlanId, Name, Price, Features

Tienda online integrada.

TablaDescripcionColumnas clave
store.CategoryCategorias de tiendaCategoryId, Name, Slug, ParentId
store.ProductVariantVariantes de productoVariantId, ProductId, SKU, Price
store.CartCarrito de comprasCartId, SessionId, Items
store.OrderPedidos onlineOrderId, CustomerId, Status, Total

Tributaria y retenciones por pais.

TablaDescripcionColumnas clave
fiscal.RetentionRetenciones (ISLR, IVA)RetentionId, DocumentId, Type, Rate, Amount
fiscal.FiscalBookLibros fiscalesBookId, CompanyId, Type, Period
fiscal.TaxDeclarationDeclaraciones tributariasDeclarationId, CompanyId, TaxType, Period

Trazabilidad completa de operaciones.

TablaDescripcionColumnas clave
audit.AuditLogLog de cambiosLogId, UserId, ModuleName, EntityName, ActionType, Summary, IPAddress

Funcionalidades transversales del sistema.

TablaDescripcionColumnas clave
sys.LeadLeads comercialesLeadId, CompanyId, Name, Email, Source, Status
sys.AlertAlertas automaticasAlertId, CompanyId, AlertType, Message, IsRead
sys.NotificationNotificacionesNotificationId, UserId, Title, Body, IsRead

Gestion de transporte y despacho.

TablaDescripcionColumnas clave
logistics.CarrierTransportistasCarrierId, CompanyId, Name, ContactInfo
logistics.DriverConductoresDriverId, CarrierId, Name, LicenseNumber
logistics.GoodsReceiptRecepciones de mercanciaReceiptId, PurchaseDocumentId, Status
logistics.DeliveryNoteNotas de entregaNoteId, SalesDocumentId, CarrierId, Status
logistics.ReturnDevolucionesReturnId, DocumentId, Reason, Status

Gestion de relaciones con clientes y ventas.

TablaDescripcionColumnas clave
crm.PipelinePipelines de ventasPipelineId, CompanyId, Name
crm.PipelineStageEtapas del pipelineStageId, PipelineId, Name, Order
crm.LeadLeads/oportunidadesLeadId, PipelineId, StageId, CustomerId, Value
crm.ActivityActividades (llamadas, emails, reuniones)ActivityId, LeadId, Type, DueDate
crm.CallQueueColas de call centerQueueId, CompanyId, Name
crm.CallAgentAgentes de call centerAgentId, QueueId, UserId, Status
crm.CallRegistro de llamadasCallId, AgentId, Direction, Duration, Outcome
crm.CampaignCampanas de marketingCampaignId, CompanyId, Name, Status
crm.CampaignContactContactos de campanaContactId, CampaignId, Phone, Status
crm.ScriptScripts de llamadaScriptId, CompanyId, Name, Content

Gestion de produccion.

TablaDescripcionColumnas clave
mfg.BOMLista de materialesBOMId, ProductId, Version, Status
mfg.BOMLineLineas de BOMLineId, BOMId, MaterialId, Quantity
mfg.WorkCenterCentros de trabajoWorkCenterId, CompanyId, Name, CostPerHour
mfg.RoutingRutas de produccionRoutingId, BOMId, WorkCenterId, OperationName, Sequence
mfg.WorkOrderOrdenes de trabajoWorkOrderId, BOMId, Quantity, Status, StartDate

Gestion de vehiculos y transporte propio.

TablaDescripcionColumnas clave
fleet.VehicleVehiculosVehicleId, CompanyId, Plate, Brand, Model, Year, Status
fleet.FuelLogRegistro de combustibleFuelLogId, VehicleId, Liters, Cost, Odometer
fleet.MaintenanceTypeTipos de mantenimientoTypeId, Name, KmInterval
fleet.MaintenanceMantenimientosMaintenanceId, VehicleId, TypeId, Status, Cost
fleet.TripViajesTripId, VehicleId, DriverId, Origin, Destination, Status
fleet.VehicleDocumentDocumentos del vehiculoDocumentId, VehicleId, Type, ExpiryDate
ElementoConvencionEjemplo
TablasPascalCasear.SalesDocument
ColumnasPascalCaseCompanyId, DocumentNumber
SPs/Funcionesusp_[Schema]_[Entity]_[Action]usp_AR_SalesDocument_List
IndicesIX_[Table]_[Columns]IX_SalesDocument_CompanyId_Date
FKFK_[Table]_[RefTable]FK_SalesDocument_Customer
PKIdentity autoincrementalINT IDENTITY(1,1) / GENERATED ALWAYS AS IDENTITY
PropositoSQL ServerPostgreSQL
IdentificadorINT IDENTITY(1,1)INT GENERATED ALWAYS AS IDENTITY
Texto cortoNVARCHAR(n)VARCHAR(n)
Texto largoNVARCHAR(MAX)TEXT
BooleanoBITBOOLEAN
Fecha/horaDATETIME2TIMESTAMP
MonedaDECIMAL(18,2)NUMERIC(18,2)
JSONNVARCHAR(MAX)JSONB
UUIDUNIQUEIDENTIFIERUUID
-- Auditoria
CreatedAt TIMESTAMP DEFAULT NOW() AT TIME ZONE 'UTC',
UpdatedAt TIMESTAMP DEFAULT NOW() AT TIME ZONE 'UTC',
CreatedBy INT,
UpdatedBy INT,
-- Multi-tenant
CompanyId INT NOT NULL,
BranchId INT,
-- Borrado logico
IsActive BOOLEAN DEFAULT TRUE