BugzillaORM — различия между версиями
Материал из YourcmcWiki
(→Багзилла) |
м |
||
Строка 1: | Строка 1: | ||
− | + | Bugzilla: | |
− | + | Есть сущности: | |
+ | * баг | ||
+ | * классификация, продукт, компонент | ||
+ | * пользователь | ||
+ | * группа | ||
− | + | У сущностей есть: | |
+ | * ID - первичный ключ | ||
+ | * атрибуты | ||
+ | * ссылка на контролирующую сущность (тип + ID) <br /> т.е. если другая сущность ссылается на эту, другим полем она должна ссылаться и на контролирующую | ||
+ | * способ преобразования в строку | ||
− | + | Типы атрибутов: | |
+ | * Строка | ||
+ | * Boolean | ||
+ | * Decimal | ||
+ | * Дата | ||
+ | * Время | ||
+ | * Дата+время | ||
+ | * Single-Select → ссылка на сущность | ||
+ | * Multi-Select → ссылка на несколько сущностей одного типа | ||
+ | ** Атрибут атрибута - в каком виде показывать список. | ||
− | + | У всех атрибутов тоже есть ссылка на контролирующую сущность, означающая, что атрибут показывается, только если его сущность ссылается на его контролирующую сущность (или одну из них). | |
− | + | Поля багов: | |
− | + | <tab sep=bar class=simpletable head=left> | |
− | + | short_desc | строка | |
+ | classification | single-select | ||
+ | product | single-select, контролируется classification (или никем), у поля есть привязка к правам пользователя | ||
+ | version | single-select, контролируется product | ||
+ | component | single-select, контролируется | ||
+ | rep_platform | single-select, специальная функция "угадывания" дефолтного значения | ||
+ | bug_file_loc | строка | ||
+ | op_sys | single-select, специальная функция "угадывания" дефолтного значения | ||
+ | bug_status | single-select, есть функция валидации (Bug Status Workflow) | ||
+ | resolution | single-select, у атрибута есть контролирующая сущность (показывается только при bug_status.closed=1) | ||
+ | status_whiteboard | строка | ||
+ | keywords | multi-select, показ в виде списка | ||
+ | bug_severity | single-select | ||
+ | priority | single-select, есть желание сделать decimal | ||
+ | assigned_to | single-select, показ в виде select'а или строки, есть функция валидации (угадывания юзера по некорректному имени) | ||
+ | reporter | single-select, показ в виде select'а или строки, есть функция валидации (угадывания юзера по некорректному имени) | ||
+ | qa_contact | single-select, показ в виде select'а или строки, есть функция валидации (угадывания юзера по некорректному имени) | ||
+ | votes | decimal(,0) | ||
+ | cc | multi-select, показ в виде combo-box'а, есть функция валидации (угадывания юзера по некорректному имени) | ||
+ | dependson | multi-select, показ в виде списка | ||
+ | blocked | multi-select, показ в виде списка | ||
+ | target_milestone | строка | ||
+ | see_also | multi-select, показ в виде списка (багов) | ||
+ | alias | строка | ||
+ | reporter_accessible | boolean | ||
+ | cclist_accessible | boolean | ||
+ | estimated_time | время | ||
+ | remaining_time | время | ||
+ | deadline | дата | ||
+ | creation_ts | дата+время | ||
+ | delta_ts | дата+время | ||
+ | lastdiffed | дата+время, скрыто в интерфейсе | ||
+ | </tab> | ||
− | + | Устаревшие поля / поля, которые ХЗ зачем нужны в таблице полей багов: | |
− | + | * assignee_accessible | |
− | + | * qacontact_accessible | |
− | + | * longdesc | |
− | + | * commenter | |
− | + | * longdescs.isprivate | |
− | * | + | * content |
− | * | + | * bug_group |
− | * | + | * flagtypes.name |
− | * | + | * requestees.login_name |
− | * | + | * setters.login_name |
− | * | + | |
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * . | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | Вычисляемые поля багов: | ||
+ | <tab sep=bar class=simpletable head=left> | ||
+ | work_time | Сумма work_time от связанных longdescs | ||
+ | percentage_complete | (Сумма work_time связанных багов)/(Сумма estimated_time связанных багов) | ||
+ | owner_idle_time | Текущая дата минус MAX(дата последнего коммента от Assignee, дата последней активности от Assignee) | ||
+ | days_elapsed | Текущая дата минус delta_ts | ||
+ | everconfirmed | Менялся ли статус хоть раз на != UNCONFIRMED | ||
+ | </tab> | ||
+ | Поля вложений: | ||
+ | <tab sep=bar class=simpletable head=top> | ||
+ | bug_id | single-select, показ в виде строки | ||
+ | submitter | single-select, показ в виде select'а или строки, есть функция валидации (угадывания юзера по некорректному имени) | ||
+ | description | single-select, показ в виде select'а или строки, есть функция валидации (угадывания юзера по некорректному имени) | ||
+ | filename | строка | ||
+ | mimetype | строка | ||
+ | ispatch | boolean | ||
+ | isobsolete | boolean | ||
+ | isprivate | boolean | ||
+ | isurl | boolean | ||
+ | thedata | потенциально строка, а вообще-то обычно NULL, т.к. данные хранятся в локальных файлах | ||
+ | </tab> | ||
[[Категория:Разработка]] | [[Категория:Разработка]] |
Версия 16:48, 2 августа 2010
Bugzilla:
Есть сущности:
- баг
- классификация, продукт, компонент
- пользователь
- группа
У сущностей есть:
- ID - первичный ключ
- атрибуты
- ссылка на контролирующую сущность (тип + ID)
т.е. если другая сущность ссылается на эту, другим полем она должна ссылаться и на контролирующую - способ преобразования в строку
Типы атрибутов:
- Строка
- Boolean
- Decimal
- Дата
- Время
- Дата+время
- Single-Select → ссылка на сущность
- Multi-Select → ссылка на несколько сущностей одного типа
- Атрибут атрибута - в каком виде показывать список.
У всех атрибутов тоже есть ссылка на контролирующую сущность, означающая, что атрибут показывается, только если его сущность ссылается на его контролирующую сущность (или одну из них).
Поля багов:
short_desc | строка |
---|---|
classification | single-select |
product | single-select, контролируется classification (или никем), у поля есть привязка к правам пользователя |
version | single-select, контролируется product |
component | single-select, контролируется |
rep_platform | single-select, специальная функция "угадывания" дефолтного значения |
bug_file_loc | строка |
op_sys | single-select, специальная функция "угадывания" дефолтного значения |
bug_status | single-select, есть функция валидации (Bug Status Workflow) |
resolution | single-select, у атрибута есть контролирующая сущность (показывается только при bug_status.closed=1) |
status_whiteboard | строка |
keywords | multi-select, показ в виде списка |
bug_severity | single-select |
priority | single-select, есть желание сделать decimal |
assigned_to | single-select, показ в виде select'а или строки, есть функция валидации (угадывания юзера по некорректному имени) |
reporter | single-select, показ в виде select'а или строки, есть функция валидации (угадывания юзера по некорректному имени) |
qa_contact | single-select, показ в виде select'а или строки, есть функция валидации (угадывания юзера по некорректному имени) |
votes | decimal(,0) |
cc | multi-select, показ в виде combo-box'а, есть функция валидации (угадывания юзера по некорректному имени) |
dependson | multi-select, показ в виде списка |
blocked | multi-select, показ в виде списка |
target_milestone | строка |
see_also | multi-select, показ в виде списка (багов) |
alias | строка |
reporter_accessible | boolean |
cclist_accessible | boolean |
estimated_time | время |
remaining_time | время |
deadline | дата |
creation_ts | дата+время |
delta_ts | дата+время |
lastdiffed | дата+время, скрыто в интерфейсе |
Устаревшие поля / поля, которые ХЗ зачем нужны в таблице полей багов:
- assignee_accessible
- qacontact_accessible
- longdesc
- commenter
- longdescs.isprivate
- content
- bug_group
- flagtypes.name
- requestees.login_name
- setters.login_name
Вычисляемые поля багов:
work_time | Сумма work_time от связанных longdescs |
---|---|
percentage_complete | (Сумма work_time связанных багов)/(Сумма estimated_time связанных багов) |
owner_idle_time | Текущая дата минус MAX(дата последнего коммента от Assignee, дата последней активности от Assignee) |
days_elapsed | Текущая дата минус delta_ts |
everconfirmed | Менялся ли статус хоть раз на != UNCONFIRMED |
Поля вложений:
bug_id | single-select, показ в виде строки |
---|---|
submitter | single-select, показ в виде select'а или строки, есть функция валидации (угадывания юзера по некорректному имени) |
description | single-select, показ в виде select'а или строки, есть функция валидации (угадывания юзера по некорректному имени) |
filename | строка |
mimetype | строка |
ispatch | boolean |
isobsolete | boolean |
isprivate | boolean |
isurl | boolean |
thedata | потенциально строка, а вообще-то обычно NULL, т.к. данные хранятся в локальных файлах |