# Tablas, Campos y Registros

- Human documentation: [https://docs.univer.ai/es-ES/guides/bases/model/tables-fields-records](https://docs.univer.ai/es-ES/guides/bases/model/tables-fields-records)

- Agent Markdown: [https://docs.univer.ai/es-ES/guides/bases/model/tables-fields-records.md](https://docs.univer.ai/es-ES/guides/bases/model/tables-fields-records.md)

- Requested language: `es-ES`

- Content language: `es-ES`

- Documentation version: `1.2.0`

- Source: [bases/model/tables-fields-records.es-ES.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/bases/model/tables-fields-records.es-ES.mdx)

---

Una Base contiene tablas ordenadas. Cada tabla contiene definiciones de campos, valores de registros, matrices de datos de celda opcionales, recursos, vistas e índices utilizados por la lógica de representación y búsqueda.

Las tablas nuevas comienzan con cero registros; agréguelos explícitamente mediante la API Facade o los datos de una instantánea importada.

## Instantánea de la tabla

| Propiedad      | Tipo                                | Descripción                                         |
| -------------- | ----------------------------------- | --------------------------------------------------- |
| id             | `string`                            | Id. de tabla.                                       |
| name           | `string`                            | Nombre de tabla.                                    |
| fields         | `Record\<string, IFieldSnapshot\>`  | Definiciones de campos codificadas por ID de campo. |
| fieldOrder     | `string[]`                          | Lista ordenada de ID de campo.                      |
| records        | `Record\<string, IRecordSnapshot\>` | Datos de registro codificados por ID de registro.   |
| recordOrder?   | `string[]`                          | Lista ordenada de ID de registro.                   |
| primaryFieldId | `string`                            | Id. de campo principal.                             |
| views          | `Record\<string, IViewSnapshot\>`   | Vistas codificadas por vista id.                    |
| viewOrder      | `string[]`                          | Lista ordenada de ID de vista.                      |
| resources?     | `IBaseResources`                    | Opciones compartidas, miembros y recursos adjuntos. |

## Instantánea del campo

| Propiedad     | Tipo                        | Descripción                                   |
| ------------- | --------------------------- | --------------------------------------------- |
| id            | `string`                    | Id. de campo.                                 |
| name          | `string`                    | Nombre de campo.                              |
| description?  | `string`                    | Descripción de campo.                         |
| type          | `BaseFieldType`             | Tipo de campo.                                |
| config        | `Record\<string, unknown\>` | Configuración de campo específico del tipo.   |
| defaultValue? | `BaseCellValue`             | Valor predeterminado para nuevo registros.    |
| system?       | `boolean`                   | Si el campo está administrado por el sistema. |
| readonly?     | `boolean`                   | Si los valores son de solo lectura.           |

## Tipos de campos

Los tipos de campos comunes incluyen `text`, `number`, `currency`, `progress`, `rating`, `checkbox`, `singleSelect`, `multiSelect`, `person`, `group`, `date`, `attachment`, `formula`, `createdAt`, `updatedAt`, `createdBy` y `updatedBy`.

Utilice enumeraciones de fachada al crear el código de aplicación:

```ts
const field = table.addField('Due date', univerAPI.Enum.BaseFieldType.Date)
```

## Registrar instantánea

| Propiedad  | Tipo                              | Descripción                            |
| ---------- | --------------------------------- | -------------------------------------- |
| id         | `string`                          | Id. del registro.                      |
| values     | `Record\<string, BaseCellValue\>` | Valores codificados por id. del campo. |
| orderKey   | `string`                          | Clave de pedido estable.               |
| createdAt  | `number`                          | Marca de tiempo de creación.           |
| updatedAt  | `number`                          | Marca de tiempo de actualización.      |
| createdBy? | `string`                          | Creador id.                            |
| updatedBy? | `string`                          | Id. del último actualizador.           |

## Ejemplo de fachada

```ts
const table = base.insertTable('Tasks', { primaryFieldName: 'Title' })
const title = table.getPrimaryField()
const status = table.addField('Status', univerAPI.Enum.BaseFieldType.SingleSelect)

const record = table.addRecord({
  [title.getId()]: 'Write guide',
  [status.getId()]: 'In progress',
})
```
