表结构以支持对单个列的多次尝试

问题描述

我正在建立一个数据库来跟踪宠物照相公司的照相会议。

我已经建立了三个表,一个包含有关一个客户的所有相关信息的客户表,一个宠物表,用于跟踪每个客户的多个宠物。

最后一张桌子是我遇到问题的地方。每个摄影会话都会有一个条目。一次照相会话将有一个客户,但可能有多个宠物,并且可能不是客户拥有的所有宠物。

如何构造表格以实现此目的?

解决方法

我建议使用两个表格:一个用于存储照片,另一个用于存储宠物和照片之间的多对多关系。

-- you already have these two tables
create table clients (
    id int primary key,...
);
create table pets (
    id int primary key,client_id int references clients(id),...
);

-- create those
create table photo_sessions (
    id int primary key,...
);
create table photo_sessions_pets (
    id int primary key,photo_session_id int references photo_session(id),pet_id int references pet(id)
);