sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo construir tablas relacionales en un mercado de dos caras

Debe comprender la forma básica de registrar información de forma relacional, es decir, en tablas.

Encontrar suficientes mesas

Solo tenga una tabla base para cada declaración que necesite para describir una situación comercial:

User(user_id,name,...)
    // User [user_id] is named [name]
Contacted(contact_id,item,offer_id)
    // user [contact_id] was contacted re item [item] offered by user [offer_id]
...etc...

Los parámetros de la sentencia son las columnas de la tabla.

Si desea hablar sobre las partes de algo que cree que tiene múltiples partes (heterogéneas u homogéneas), eso solo significa que algunas declaraciones involucrarán una cosa y sus partes:

table request(request_id,start_date,end_date,...)
    // [request_id] goes from [start_date] to [end_date] and ...
table requested(request_id,item_id,person_id,...)
    // person [person_id] requested item [item_id] in request [request_id]

Qué hay en una mesa

El valor de una tabla base son las filas que hacen que su declaración sea verdadera. (Cada subexpresión de consulta también tiene una declaración, y su valor son las filas que hacen que su declaración sea verdadera).

No confunda declaraciones de tabla con reglas comerciales. Las reglas de negocio establecen verdades. Pero una declaración de tabla es una declaración que alguna tupla hace verdadera (y va en la tabla) o falsa (queda fuera de la tabla). Todas las declaraciones verdaderas y falsas de las tablas le dicen todo lo que necesita saber sobre el negocio. Las reglas de negocio nunca las contradirán. (Ya que siempre son ciertas).

Reorganizar a mejores tablas

Una clave es un conjunto de columnas de las que todas las demás columnas son tales funciones, pero ninguno de cuyos subconjuntos tiene esa propiedad. Una tabla puede tener más de una clave.

Para hacer que una base de datos sea más fácil de actualizar y consultar, debe dividir ciertas declaraciones que son otras declaraciones unidas por AND. Dividir hasta que cada declaración consista en una declaración solo sobre columnas clave combinadas con declaraciones de esta forma:

[my_column]=my_function([key_k_column_1],[key_k_column_2],...)

donde key_k_column_1,... son columnas de la misma clave key_n.

(Dicha tabla está "en quinta forma normal" y el tema es "normalización".)