Changes between Version 5 and Version 6 of normalization


Ignore:
Timestamp:
01/29/26 23:04:01 (17 hours ago)
Author:
231175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • normalization

    v5 v6  
    1616review_id, review_rating, review_comment, review_date,
    1717course_translate_id, course_translate_language, course_title_short, course_title, course_description_short, course_description, course_description_long,
    18 course_what_will_be_learned_text,
     18course_what_will_be_learned,
    1919course_content_id, content_position,
    2020course_content_translate_id, content_translate_title, content_translate_language,
     
    6262 * '''FD26:''' (course_version_id, content_position) → course_content_id
    6363 * '''FD27:''' (course_content_id, lecture_position) → course_lecture_id
    64 
     64 * '''FD28:''' (course_translate_id, course_what_will_be_learned) → ∅
    6565'''}'''
    6666
     
    136136|| course_description || ✗ || ✓ (FD12) || десно ||
    137137|| course_description_long || ✗ || ✓ (FD12) || десно ||
     138|| course_what_will_be_learned || ✓ (FD28) || ✗ || лево ||
    138139|| course_content_id || ✓ (FD13, FD23, FD27) || ✓ (FD14, FD15, FD26) || и лево и десно ||
    139140|| content_position || ✓ (FD26) || ✓ (FD13) || и лево и десно ||
     
    159160=== 3.3 Атрибути кои се појавуваат САМО на лева страна ===
    160161
    161  * '''saleId''' - мора да биде дел од секој кандидат клуч
    162  * '''poId''' - мора да биде дел од секој кандидат клуч
     162 * '''verification_token_uuid''' - мора да биде дел од секој кандидат клуч
     163 * '''meeting_reminder_id''' - мора да биде дел од секој кандидат клуч
     164 * '''course_what_will_be_learned''' - мора да биде дел од секој кандидат клуч
    163165
    164166=== 3.4 Пресметка на затворач ===
    165167
    166 '''Чекор 1:''' Започнуваме со {saleId, poId} и пресметуваме затворач:
    167 
    168 {{{
    169 {saleId, poId}⁺:
    170 - Од FD10 (saleId →): добиваме sale_date_time, sale_total_amount, userId, customerId, warehouseId
    171 - Од FD11 (poId →): добиваме po_order_date, po_expected_delivery_date, po_status, supplierId, warehouseId
    172 - Од FD1 (userId →): добиваме user_username, user_password, user_full_name, user_email, user_role, user_is_active
    173 - Од FD4 (customerId →): добиваме customer_name, customer_email, customer_phone, customer_address
    174 - Од FD8 (supplierId →): добиваме supplier_name, supplier_contact_person, supplier_phone, supplier_email, supplier_address
    175 - Од FD9 (warehouseId →): добиваме warehouse_name, warehouse_location, warehouse_capacity
    176 }}}
    177 
    178 '''{saleId, poId}⁺ ≠ U'''
    179 
    180 '''Недостасуваат:''' productId, product_name, product_description, product_sku, product_unit_price, product_reorder_level, categoryId, category_name, category_description, saleitem_quantity, saleitem_unit_price_at_sale, poitem_quantity, poitem_unit_cost, stock_quantity_on_hand, stock_last_updated
    181 
    182 '''Чекор 2:''' Додаваме productId:
    183 
    184 {{{
    185 {saleId, poId, productId}⁺:
     168'''Чекор 1:''' Започнуваме со {verification_token_uuid, meeting_reminder_id, course_what_will_be_learned} и пресметуваме затворач:
     169
     170{{{
     171{verification_token_uuid, meeting_reminder_id, course_what_will_be_learned}⁺:
     172- Од FD2 (verification_token_uuid →): добиваме token_created_at, token_expired_at, user_id
     173- Од FD3 (meeting_reminder_id →): добиваме meeting_at, meeting_scheduled_at, meeting_sent, meeting_link, user_id
     174- Од FD1 (user_id →): добиваме user_name, user_email, user_login_provider, user_password_hash, user_verified, user_profile_complete, user_used_free_consultation, user_company_size, user_work_position, user_points
     175- Од FD18 (user_email →): добиваме user_id
     176}}}
     177
     178'''{verification_token_uuid, meeting_reminder_id, course_what_will_be_learned}⁺ ≠ Universal_Relation_Shifter'''
     179
     180'''Недостасуваат:'''
     181expert_id, expert_name, expert_email, expert_login_provider, expert_password_hash,
     182course_id, course_image_url, course_color, course_difficulty, course_duration_minutes, course_price,
     183course_version_id, version_number, version_creation_date, version_active,
     184enrollment_id, enrollment_status, enrollment_purchase_date, enrollment_activation_date, enrollment_completion_date,
     185payment_id, payment_amount, payment_date, payment_method, payment_status,
     186review_id, review_rating, review_comment, review_date,
     187course_translate_id, course_translate_language, course_title_short, course_title, course_description_short, course_description, course_description_long,
     188course_content_id, content_position,
     189course_content_translate_id, content_translate_title, content_translate_language,
     190course_lecture_id, lecture_duration_minutes, lecture_position, lecture_content_type,
     191course_lecture_translate_id, lecture_title, lecture_language, lecture_content_file_name, lecture_description, lecture_content_text,
     192user_course_progress_id, progress_completed, progress_completed_at,
     193tag_id, tag_type,
     194tag_translate_id, tag_translate_language, tag_value
     195
     196'''Чекор 2:''' Додаваме user_course_progress_id:
     197
     198{{{
     199{verification_token_uuid, meeting_reminder_id, course_what_will_be_learned, user_course_progress_id}⁺:
    186200- Сè од претходно, плус:
    187 - Од FD5 (productId →): добиваме product_name, product_description, product_sku, product_unit_price, product_reorder_level, categoryId, supplierId
    188 - Од FD7 (categoryId →): добиваме category_name, category_description
    189 - Од FD12 ({saleId, productId} →): добиваме saleitem_quantity, saleitem_unit_price_at_sale
    190 - Од FD13 ({poId, productId} →): добиваме poitem_quantity, poitem_unit_cost
    191 - Од FD14 ({warehouseId, productId} →): добиваме stock_quantity_on_hand, stock_last_updated
    192 }}}
    193 
    194 '''{saleId, poId, productId}⁺ = U''' (ги содржи сите атрибути) ✓
     201- Од FD6 (user_course_progress_id →): добиваме progress_completed, progress_completed_at, enrollment_id, course_lecture_id
     202- Од FD15 (course_lecture_id →): добиваме lecture_duration_minutes, lecture_position, lecture_content_type, course_content_id
     203- Од FD13 (course_content_id →): добиваме content_position, course_version_id
     204- Од FD6 (enrollment_id →): добиваме enrollment_status, enrollment_purchase_date, enrollment_activation_date, enrollment_completion_date, user_id, course_version_id, payment_id, review_id
     205- Од FD7 (payment_id →): добиваме payment_amount, payment_date, payment_method, payment_status, enrollment_id
     206- Од FD8 (review_id →): добиваме review_rating, review_comment, review_date, enrollment_id
     207- Од FD11 (course_version_id →): добиваме version_number, version_creation_date, version_active, course_id
     208- Од FD5 (course_id →): добиваме course_image_url, course_color, course_difficulty, course_duration_minutes, course_price
     209}}}
     210
     211'''{verification_token_uuid, meeting_reminder_id, course_what_will_be_learned, user_course_progress_id}⁺ ≠ Universal_Relation_Shifter'''
     212
     213'''Недостасуваат:'''
     214expert_id, expert_name, expert_email, expert_login_provider, expert_password_hash,
     215course_translate_id, course_translate_language, course_title_short, course_title, course_description_short, course_description, course_description_long,
     216course_content_translate_id, content_translate_title, content_translate_language,
     217course_lecture_translate_id, lecture_title, lecture_language, lecture_content_file_name, lecture_description, lecture_content_text,
     218tag_id, tag_type,
     219tag_translate_id, tag_translate_language, tag_value
     220
     221'''Чекор 3:''' Додаваме expert_id, course_lecture_translate_id, course_content_translate_id, course_translate_id, tag_translate_id:
     222
     223{{{
     224{verification_token_uuid, meeting_reminder_id, course_what_will_be_learned, user_course_progress_id, expert_id, course_lecture_translate_id, course_content_translate_id, course_translate_id, tag_translate_id}⁺:
     225- Сè од претходно, плус:
     226- Од FD4 (expert_id →): добиваме expert_name, expert_email, expert_login_provider, expert_password_hash
     227- Од FD16 (course_lecture_translate_id →): добиваме lecture_title, lecture_language, lecture_content_file_name, lecture_description, lecture_content_text, course_lecture_id
     228- Од FD14 (course_content_translate_id →): добиваме content_translate_title, content_translate_language, course_content_id
     229- Од FD12 (course_translate_id →): добиваме course_translate_language, course_title_short, course_title, course_description_short, course_description
     230- Од FD10 (tag_translate_id →): добиваме tag_translate_language, tag_value, tag_id
     231- Од FD9 (tag_id →): добиваме tag_type
     232- Од FD28 ({course_translate_id, course_what_will_be_learned} →): добиваме ∅
     233}}}
     234
     235'''{verification_token_uuid, meeting_reminder_id, course_what_will_be_learned, user_course_progress_id, expert_id, course_lecture_translate_id, course_content_translate_id, course_translate_id, tag_translate_id}⁺ = Universal_Relation_Shifter''' (ги содржи сите атрибути) ✓
    195236
    196237=== 3.5 Проверка за минималност ===
     
    201242|| {poId, productId}⁺ || Недостасуваат атрибути од saleId: sale_date_time, sale_total_amount, saleitem_quantity, saleitem_unit_price_at_sale, userId→атрибути, customerId→атрибути || ✗ НЕ ||
    202243
    203 '''Заклучок:''' {saleId, poId, productId} е минимален и е кандидат клуч.
     244'''Заклучок:''' {verification_token_uuid, meeting_reminder_id, user_course_progress_id, expert_id, course_lecture_translate_id, course_content_translate_id, course_translate_id, tag_translate_id} е минимален и е кандидат клуч.
    204245
    205246=== 3.6 Други кандидат клучеви ===