Что будет, если у 3 таблиц один и тот же Primery Key?

jester

А у одной из них он еще и Foreign

sergei1969

>Что будет, если у 3 таблиц один и тот же Primery Key
это пардон как это?
приведи пример (create table...)

PRONIN75

а в чем проблема-то?

sergei1969

тады я чего-то не понял
так пример можно?

tanj

ты хоть сам понимаешь, что пишешь?
Буба, пиши поконкретней, create table приведи...
Вишь - тебя вапще никто не понял...

PRONIN75

какой пример?..

Dasar

Который показывает, что понимается под "три таблицы и один и тот же Primary key"

jester

Прошу прощения, что забросил на выходные тему:
Например,
CREATE TABLE Lalala
LalalaID (.....)
...........
.............
...
CONSTRAINT PRIMARY KEY ( LalalaID)
...
CREATE TABLE Nanana
LalalaID
CONSTRAINT PRIMARY KEY (LalalaID)
Саму таблицу непосредственно запостить не могу.

KViH

Это ты поля одинаково обозвал. У этих 2 таблиц НЕ один и тот же Primery Key. А где определение Foreign key?
По-моему ты ничего не прояснил.

jester

форейн ки есть, ну и что, что одинаково обозвал, (и не я) смысл какой в этом?

jester

Вопрос про cdnaID


CREATE TABLE Cdna (
cdnaID VARCHAR2(30
estSetID VARCHAR2(30) NOT NULL,
codonStart NUMBER NOT NULL,
translation VARCHAR2(3000) NOT NULL,
creationDate Date NOT NULL,
blastDone CHAR(1) NOT NULL,
utrDone CHAR(1) NOT NULL,
CONSTRAINT CdnaPk PRIMARY KEY (cdnaID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaFk FOREIGN KEY (estSetID)
REFERENCES EstSet (estSetID)
);
CREATE TABLE CdnaNucleotide (
CdnaNucleotideID NUMBER,
position NUMBER NOT NULL,
nucleotide CHAR(1) NOT NULL,
score NUMBER(4) NOT NULL,
cdnaID VARCHAR2(30) NOT NULL,
CONSTRAINT CdnaNuclPk PRIMARY KEY (CdnaNucleotideID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaNuclFk FOREIGN KEY (cdnaID)
REFERENCES Cdna (cdnaID
CONSTRAINT CdnaPositionID UNIQUE (position, cdnaID)
);
CREATE TABLE NucleotideAnnotation (
nucleotideAnnotationID NUMBER,
position NUMBER NOT NULL,
base CHAR(1) NOT NULL,
newBase CHAR(1) NOT NULL,
typeOfChange VARCHAR2(30) NOT NULL,
sequenceID VARCHAR2(30) NOT NULL,
CONSTRAINT NucleotideAnnotationPk PRIMARY KEY
(NucleotideAnnotationID)
USING INDEX TABLESPACE indx,
CONSTRAINT NucleotideAnnotation UNIQUE (position,
typeOfChange, sequenceID)
);
CREATE TABLE Annotation (
cdnaID VARCHAR2(30
sprotid VARCHAR2(10) NOT NULL,
identity number,
coverage number,
CONSTRAINT AnnotationPk PRIMARY KEY (cdnaID)
USING INDEX TABLESPACE indx
);
CREATE TABLE CdnaBlastMatchSet(
blastMatchSetID VARCHAR2(35
cdnaID VARCHAR2(30) NOT NULL,
blastDatabaseID VARCHAR2(2) NOT NULL,
creationDate DATE NOT NULL,
CONSTRAINT CdnaBlastMatchSetPk PRIMARY KEY
(blastMatchSetID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaBlastMatchEstFk FOREIGN KEY(cdnaID)
REFERENCES Cdna (cdnaID)
);
CREATE TABLE CdnaBlastMatch(
CdnablastMatchID NUMBER,
blastMatchSetID VARCHAR2(35) NOT NULL,
hitPosition NUMBER(5) NOT NULL,
description VARCHAR2(500
score NUMBER,
CONSTRAINT CdnaBlastMatchPk PRIMARY KEY
(CdnablastMatchID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaBlastMatchSetFk FOREIGN KEY
(blastMatchSetID)
REFERENCES CdnaBlastMatchSet (blastMatchSetID
STORAGE (INITIAL 512M
NEXT 512M
MINEXTENTS 1
MAXEXTENTS UNLIMITED);
CREATE TABLE EnsemblMatch(
cdnaID VARCHAR2(30
ensemblID VARCHAR2(30) NOT NULL,
identity number NOT NULL,
coverage number NOT NULL,
length number NOT NULL,
CONSTRAINT EnsemblMatchPk PRIMARY KEY (cdnaID)
USING INDEX TABLESPACE indx,
CONSTRAINT EnsemblMatchFk FOREIGN KEY (cdnaID)
REFERENCES Cdna (cdnaID)
);
CREATE TABLE GOPfamMap(
PfamID VARCHAR2(10) NOT NULL,
GOID VARCHAR2(10) NOT NULL,
PfamDesc VARCHAR2(50) NOT NULL,
GODesc VARCHAR2(200) NOT NULL
);
CREATE TABLE CdnaRPSBlastMatchSet(
blastMatchSetID VARCHAR2(35
cdnaID VARCHAR2(30) NOT NULL,
blastDatabaseID VARCHAR2(2) NOT NULL,
creationDate DATE NOT NULL,
CONSTRAINT CdnaRPSBlastMatchSetPk PRIMARY KEY
(blastMatchSetID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaRPSBlastMatchEstFk FOREIGN KEY(cdnaID)
REFERENCES Cdna (cdnaID)
);
CREATE TABLE CdnaRPSBlastMatch(
CdnaRPSBlastMatchID NUMBER,
blastMatchSetID VARCHAR2(35) NOT NULL,
hitID VARCHAR2(20) NOT NULL,
hitPosition NUMBER(5) NOT NULL,
description VARCHAR2(500
score NUMBER,
CONSTRAINT CdnaRPSBlastMatchPk PRIMARY KEY
(CdnaRPSBlastMatchID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaRPSBlastMatchSetFk FOREIGN KEY
(blastMatchSetID)
REFERENCES CdnaRPSBlastMatchSet (blastMatchSetID
STORAGE (INITIAL 512M
NEXT 512M
MINEXTENTS 1
MAXEXTENTS UNLIMITED);


Извиняюсь, что не сохранились отступы

tanj

стандарт у многих такой есть, первичные ключи в таблицах одинаково обзывать. Ничего плохого в этом нет.
При этом каждое ограничени constraint для вторичного ключа (foreign key) явно указывает к какой таблице он будет обращаться за этим полем cdnaID. Так что это разные первичные ключи, хоть и название одинаковое

Dasar

> ну и что, что одинаково обозвал, (и не я) смысл какой в этом?
Вопрос был: "Что будет, если у 3 таблиц один и тот же Primery Key?"
Ответ: это три разных Primary key-я для трех разных таблиц, то что поля, на которых построен Primary key, имеют одиннаковые имена - ни на что не влиет.

jester

Ок, понял
Оставить комментарий
Имя или ник:
Комментарий: