0

I need an advice in table creation. What is the best? if you can explain why, it would be grateful.

CREATE TABLE TRANSLATION (
       LANGUAGE_CODE CHAR(2) NOT NULL,
       TRANSLATION VARCHAR2(30) NOT NULL,
       OBJECT_ID NUMBER NOT NULL,
       OBJECT_TYPE VARCHAR(10) NOT NULL,
       CONSTRAINT P$TR#PRIMARY PRIMARY KEY (LANGUAGE_CODE, OBJECT_ID, OBJECT_TYPE)
)

or

CREATE TABLE TRANSLATION (
       ID NUMBER NOT NULL,
       LANGUAGE_CODE CHAR(2) NOT NULL,
       TRANSLATION VARCHAR2(30) NOT NULL,
       OBJECT_ID NUMBER NOT NULL,
       OBJECT_TYPE VARCHAR(10) NOT NULL,
       CONSTRAINT P$TR#PRIMARY PRIMARY KEY (ID),
       CONSTRAINT P$TR#PRIMARY UNIQUE (LANGUAGE_CODE, OBJECT_ID, OBJECT_TYPE)
)

As you can see the difference only in existing primary key in the second example. I will never have to find such rows by id because no other table have references to it. I use Oracle db

Oleksandr Samsonov
  • 1,067
  • 2
  • 14
  • 29

0 Answers0