Changes between Version 3 and Version 4 of UseCase0001PrototypeImplementationDB


Ignore:
Timestamp:
08/07/26 15:52:23 (24 hours ago)
Author:
231175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase0001PrototypeImplementationDB

    v3 v4  
    88
    99Експертот сака да креира нов курс во системот.
    10 
    11 == Предуслов: табела `expert_course` ==
    12 
    13 Шемата нема врска помеѓу `expert` и `course`, па нема каде да се запише кој експерт го креирал курсот. Оваа табела мора да се додаде во DDL пред овој случај на употреба да работи.
    14 
    15 {{{
    16 CREATE TABLE expert_course (
    17     expert_id  bigint NOT NULL,
    18     course_id  bigint NOT NULL,
    19     CONSTRAINT pk_expert_course PRIMARY KEY (expert_id, course_id),
    20     CONSTRAINT fk_ec_expert FOREIGN KEY (expert_id)
    21         REFERENCES expert (expert_id) ON DELETE CASCADE,
    22     CONSTRAINT fk_ec_course FOREIGN KEY (course_id)
    23         REFERENCES course (course_id) ON DELETE CASCADE
    24 );
    25 }}}
    2610
    2711== Главен тек ==
     
    204188- `uq_course_content_position` и `uq_course_lecture_position` — две модули или две лекции не смеат да имаат иста позиција.
    205189- `uq_course_translate` — не смее да има два превода на ист јазик за ист курс.
    206 
    207 == Забелешки ==
    208 
    209 - Сите вредности за `difficulty`, `content_type` и `tag_type` мора да се со мали букви — тоа се лабели на PostgreSQL enum типови и се осетливи на голема/мала буква.
    210 - `tag_type` има само две вредности: `skill` и `topic`. Вредноста `interest` не постои и предизвикува грешка, а не празен резултат.
    211 - Целиот блок мора да биде во една трансакција. Ако некој од чекорите падне, курсот не смее да остане делумно креиран.
    212 - `uq_course_version_one_active` дозволува само една активна верзија по курс. При креирање на нова верзија, старата мора прво да се постави на `is_active = false`.