/ / Crea una chiave esterna e usa il riferimento su diversi tablespace? - sql, oracle, chiavi esterne, tablespace

Crea una chiave esterna e usa il riferimento su diversi tablespace? - sql, oracle, chiavi esterne, tablespace

Sto praticando la creazione di database e tablespacee implementazione della tabella. Ho un problema che ho cercato su internet per alcune idee, ma nessuna è precisa per quello che ho ora. La mia domanda è se è possibile creare una tabella che utilizza una chiave esterna che fa riferimento a un'altra colonna della tabella in un tablespace diverso. Oracle SQL.

create table agent(
code Number(4),
name varchar(30),
area Number(4),
constraint pk_Code primary key (code),
constraint fk_Area foreign key (area) references Warehouse(code))
tablespace sales;

risposte:

3 per risposta № 1

In Oracle, tablespaces sono contenitori logici di tabelle utilizzate per gestire i loro parametri di archiviazione (soprattutto, il modo in cui mappano i file di dati).

I tablespace non hanno alcun effetto sulle autorizzazioni o sui vincoli della tabella: è perfettamente possibile aggiungere una chiave esterna a una tabella che fa riferimento a una tabella su un tablespace diverso.


1 per risposta № 2

Come ha detto @Mureinik, è perfettamente possibilepuntare le chiavi esterne alle tabelle in altri tablespace. Detto questo, tenderei a non farlo. Avere una chiave esterna che attraversa un bordo del tablespace è un'indicazione (anche se moderata) che l'impostazione del tablespace potrebbe fare con qualche riconsiderazione.

Personalmente utilizzerei tablespace come ununità amministrativa, contenente tabelle (e / o indici) che condividono alcune proprietà (di solito fisiche), che dovrebbero essere rese di sola lettura o di backup o trasportate insieme ...