Articles of database design

Como você gosta de suas chaves primárias?

Em uma discussão bastante animada em minha equipe, fui levado a pensar no que a maioria das pessoas gosta como chaves primárias. Nós tivemos os seguintes grupos Int / BigInt que autoincrement são chaves primárias boas o suficiente. Deve haver pelo menos 3 colunas que compõem a chave primária. ID, GUID e identificadores de linhas […]

É possível consultar uma tabela de estrutura de tree no MySQL em uma única consulta, para qualquer profundidade?

Eu estou pensando que a resposta é não, mas eu adoraria que ninguém tivesse qualquer insight sobre como rastrear uma estrutura de tree para qualquer profundidade em SQL (MySQL), mas com uma única consulta Mais especificamente, dada uma tabela estruturada em tree (id, data, data, parent_id), e uma linha na tabela, é possível obter todos […]

MySQL – Restrições Condicionais de Chave Estrangeira

Tenho a seguinte tabela de ‘comentários’ no meu aplicativo: comments ——– id INT foreign_id INT model TEXT comment_text TEXT … A ideia desta tabela é armazenar comentários para várias partes do meu aplicativo – ele pode armazenar comentários para postagem no blog, por exemplo: 1|34|blogpost|lorem ipsum… imagem do usuário: 2|12|picture|lorem ipsum… e assim por diante. […]

Use Float ou Decimal para o valor do dólar da aplicação contábil?

Estamos reescrevendo nosso sistema de contabilidade legado no VB.NET e no SQL Server. Trouxemos uma nova equipe de programadores .NET / SQL para fazer a reescrita. A maior parte do sistema já está concluída com os valores em dólares usando Floats. A linguagem do sistema legado, eu programei, não tinha um Float então eu provavelmente […]

Criar restrição exclusiva com colunas nulas

Eu tenho uma tabela com este layout: CREATE TABLE Favorites ( FavoriteId uuid NOT NULL PRIMARY KEY, UserId uuid NOT NULL, RecipeId uuid NOT NULL, MenuId uuid ) Eu quero criar uma restrição única semelhante a esta: ALTER TABLE Favorites ADD CONSTRAINT Favorites_UniqueFavorite UNIQUE(UserId, MenuId, RecipeId); No entanto, isso permitirá várias linhas com o mesmo […]

Como as relações de super e subtipo nos diagramas ER são representadas como tabelas?

Eu estou aprendendo como interpretar diagramas de relação de entidade em instruções SQL DDL e estou confuso por diferenças na notação. Considere um relacionamento disjunto como no diagrama a seguir: Isso seria representado como: Tabelas de veículo, 2WD e 4WD (2WD e 4WD apontariam para o PK do veículo); ou APENAS as tabelas 2WD e […]

Subconsultas vs junções

Refatorei uma seção lenta de um aplicativo que herdamos de outra empresa para usar uma junit interna em vez de uma subconsulta como where id in (select id from … ) A consulta refatorada é executada aproximadamente 100x mais rápido. (~ 50 segundos a ~ 0,3) Eu esperava uma melhora, mas alguém pode explicar por […]

O que significa o fim principal de uma associação no relacionamento 1: 1 no framework Entity

public class Foo { public string FooId{get;set;} public Boo Boo{get;set;} } public class Boo { public string BooId{get;set;} public Foo Foo{get;set;} } Eu estava tentando fazer isso no Entity Framework quando recebi o erro: Não é possível determinar o final principal de uma associação entre os tipos ‘ConsoleApplication5.Boo’ e ‘ConsoleApplication5.Foo’. O fim principal dessa associação […]

Como implementar um relacionamento muitos-para-muitos no PostgreSQL?

Eu acredito que o título é auto-explicativo. Como você cria a estrutura de tabelas no PostgreSQL para criar um relacionamento muitos-para-muitos. Meu exemplo: Product(name, price); Bill(name, date, Products);

Como você pode representar inheritance em um database?

Estou pensando em como representar uma estrutura complexa em um database do SQL Server. Considere um aplicativo que precisa armazenar detalhes de uma família de objects, que compartilham alguns atributos, mas muitos outros não são comuns. Por exemplo, um pacote de seguro comercial pode include cobertura de responsabilidade, automóvel, propriedade e indenização dentro do mesmo […]