essayNEXT / REPETITOR

MIT License
1 stars 0 forks source link

reactoring DB-migrations #67

Open KonstZiv opened 1 year ago

KonstZiv commented 1 year ago

include subtask 1 - merging six mind migration tables into one, correcting the name of the table Cards -> Card

на сьогодні ми маємо 8 міграцій БД:

  1. створює таблиці

    • ContentClass,
    • Context, Customer,
    • CustomerType
  2. перейменовує:

    • table: ContentClass -> ContentType
    • column: Context.context_class -> Context.context_type
  3. перевизначає:

    • column: ContentType.name(unique=False) -> ContentType.name(unique=True)

4 . перейменовує:

- table: ContentType -> ContextType
- column: Context.context_class(FK ref. ContentType) -> Context.context_class(FK ref. ContextType)
  1. створює таблиці:

    • RelationType
    • Item
    • ItemRelation
    • WrongAnswerItem
    • RightAnswerItem
    • Explanation
    • Question
    • Cards (чому множина?)
  2. зміна унікальності поля:

    • Customer.tlg_user_id(unique=False) -> Customer.tlg_user_id(unique=True) - не дасть в майбутньому працювати з користувачами не з телеграма
  3. Створення view: item_relation_view

  4. Заповнення таблиць базовими даними:

    • CustomerType: insert "translator", "user"
    • Customer: insert "microsoft_translator, "google_translator"
    • Explanation: insert "word translation"
    • RelationType: insert "word_translation"
    • CustomerContext: створення унікального індексу для комбінацій контекстів

Є досить багато питань до всього процесу, більше того він не автоматизований в обсязі щоб все піднімалось самостійно автоматично. Пропоную суттєво скоротити кількість міграцій і автоматизувати всі заповнення таблиць (ту не всі дані вносяться):

TarasRybak commented 1 year ago

Cards (чому множина?)

описка.

  1. Створення view: item_relation_view

я там ще унікальні набори додавав для right_answ_item, question, item. Вирішіть чи їх треба.

унікальність комбінації для користувача "контекст_1" - "контекст_2" або "контекст_2" - "контекст_1"

треба вирішити у якому місці та за яких умов має відбуватися перевірка, щодо наших поточних контекстів.