Back to Blog

Estándares para diseño e implementación de Bases de Datos Relacionales

Adrian Conza

Uncategorized
  • Los nombres de base de datos, esquemas, tablas, campos, llaves primarias y foráneas, índices, secuencias, etc. deben ir en estilo lower_case_underscore_separated_identifiers.

    invoice_details

  • El nombre de la base de datos debe contener el nombre de la empresa seguido por el nombre del aplicativo.

    company_application

  • El nombre de la tabla debe estar en plural y tener relación con los datos que se van a almacenar.

    invoices, invoice_details, products

  • Toda tabla debe tener una llave primaria la cual debe ser id.

  • El campo que se utilizará como nexo para la relación foránea con una tabla principal, debe ser el nombre de dicha tabla en singular seguido del sufijo _id.

    products -> product_id, invoices -> invoice_id, users -> user_id

  • El resto de campos de la tabla deben estar en singular y llevar directa relación con los datos almacenados.

    users -> name, email, password, last_income

  • El nombre de la llave primaria debe estar compuesta del nombre de la tabla, el campo id (opcional) seguido del sufijo _pkey.

    users_pkey, invoice_details_pkey, invoices_id_pkey

  • Los nombres de las llaves foráneas debe estar compuesta del nombre de la tabla donde subsiste la relación, seguido del campo en cuestión y el sufijo _foreign.

    invoice_details_invoice_foreign, role_student_foreign

  • Para las relaciones de muchos a muchos la tabla pivote lleva el nombre de las dos tablas en orden alfabético(si desea puede cambiar el nombre por uno que represente la relación) y contiene las columnas id de las mismas.

    Tabla 1: users, Tabla 2: roles, Tabla pivote: role_user con las columnas user_id y role_id

  • El nombre de los índices debe estar compuesta del nombre de la tabla dueña del índice, seguida del o los campos participantes del índice y el sufijo _index.

    invoice_details_product_index, invoice_details_invoice_product_index

  • El nombre de las restricciones únicas debe estar compuesta del nombre de la tabla, seguida del o los campos participantes y el sufijo _unique.

    users_email_unique

  • Las funciones trigger y los trigger de tablas deben estar formadas por el prefijo tgr_ seguida del nombre de la tabla y el nombre del trigger.

    tgr_update_product_provider

  • Las funciones deben estar formadas por el prefijo fun_ seguido del nombre de la función.

    fun_convert_unit

  • Opcional: Toda tabla que contenga información que no sea cocansiderada como modificable, debe ser tratada mediante el lenguaje de programación como un enum, diccionario de datos, json y ser almacenado en la tabla requerida mediante su identificador directo y no como un índice numérico. Ej. estados, género, años, meses, días de la semana, etc.

comments powered by Disqus