Articles of database design

Facebook como el seguimiento de notificaciones (Diseño de BD)

Solo estoy tratando de descubrir cómo la base de datos de Facebook está estructurada para rastrear notificaciones. No entraré mucho en complejidad como Facebook. Si imaginamos una estructura de tabla simple para notificaciones: notifications (id, userid, update, time); Podemos obtener las notificaciones de amigos usando: SELECT `userid`, `update`, `time` FROM `notifications` WHERE `userid` IN (… […]

¿Cuáles son las ventajas de usar una única base de datos para CADA cliente?

En una aplicación centrada en la base de datos que está diseñada para múltiples clientes, siempre he pensado que era “mejor” utilizar una sola base de datos para TODOS los clientes, asociando registros con los índices y claves adecuados. Al escuchar el podcast Stack Overflow, escuché a Joel mencionar que FogBugz usa una base de […]

¿Clave primaria compuesta o no?

Esto es lo que me está confundiendo. A menudo tengo claves primarias compuestas en las tablas de la base de datos. El lado malo de ese enfoque es que tengo bastante trabajo extra cuando elimino o edito las entradas. Sin embargo, creo que este enfoque está en el espíritu del diseño de bases de datos. […]

Técnicas para la herencia de la base de datos

¿Cuáles son los consejos / técnicas cuando necesita persistir las clases con herencia a la base de datos relacional que no admite la herencia? Digamos que tengo este clásico ejemplo: Person -> Employee -> Manager -> Team lead -> Developer -> Customer -> PrivilegedCustomer -> EnterpriseCustomer ¿Cuáles son las técnicas disponibles para diseñar la base […]

MySQL ENUM tipo vs tablas de unión

Mi requerimiento Una tabla necesita mantener una columna de estado . Esta columna representa uno de los 5 estados. diseño inicial Pensé que podía convertirlo en una columna entera y representar los estados usando un valor numérico. 0 = inicio 1 = corriendo 2 = estrellado 3 = pausa 4 = parado Como no quiero […]

Conceder todo en un esquema específico en el DB a un rol de grupo en PostgreSQL

Usando PostgreSQL 9.0, tengo un rol de grupo llamado “staff” y me gustaría otorgar todos (o ciertos) privilegios a este rol en tablas en un esquema particular. Ninguno de los siguientes trabajos GRANT ALL ON SCHEMA foo TO staff; GRANT ALL ON DATABASE mydb TO staff; Los miembros del “personal” aún no pueden SELECCIONAR o […]

¿Qué columnas generalmente son buenos índices?

Como seguimiento de ” ¿Qué son los índices y cómo puedo usarlos para optimizar las consultas en mi base de datos? “, Donde bash conocer los índices, ¿qué columnas son buenos candidatos para el índice? Específicamente para una base de datos MS SQL? Después de buscar en Google, todo lo que he leído sugiere que […]

¿No sigue usando NULL en PostgreSQL un bitmap NULL en el encabezado?

Aparentemente, PostgreSQL almacena un par de valores en el encabezado de cada fila de la base de datos . Si no utilizo valores NULL en esa tabla, ¿el bitmap nulo aún está allí? ¿La definición de las columnas con NOT NULL hace alguna diferencia?

¿Cuáles son los criterios de diseño para las claves primarias?

Elegir buenas claves primarias, claves candidatas y las claves externas que las utilizan es una tarea de diseño de base de datos de vital importancia, tanto arte como ciencia. La tarea de diseño tiene criterios de diseño muy específicos. ¿Cuáles son los criterios?

Almacenamiento de valores de hash SHA1 en MySQL

Tengo una pregunta simple que ocurrió cuando quería almacenar el resultado de un hash SHA1 en una base de datos MySQL: ¿Cuánto tiempo debe estar el campo VARCHAR en el que almaceno el resultado del hash?