// https://dbml.dbdiagram.io/docs // Entity Table entity { id int [pk] name varchar [not null, note: "{*}.name"] img varchar(100) [note: "{*}.img"] type entity_type [not null] slug varchar rarity entity_rarity [not null, default: "common", note: "{*}.system.rarity"] } Enum entity_type { feat } Enum entity_rarity { common uncommon rare } // Alias Table entity_aliases { id int [pk, increment] entity_id int [ref: > entity.id] alias varchar [not null] type alias_type [not null] } Enum alias_type { old english hobby } // Keywords Table keyword { id int [pk, increment] } Table entity_keywords { entity_id int [ref: > entity.id] keyword_id int [ref: > keyword.id] } // Sources TableGroup source_group { source entity_sources } Table source { id int [pk, increment] name varchar url varchar } Table entity_sources { entity_id int [ref: > entity.id] source_id int [ref: > source.id] suffix varchar [default: ""] } // External links TableGroup external_group { external_target entity_external } Table external_target { id int name varchar icon varchar } Table entity_external { entity_id int [ref: > entity.id] target_id int [ref: > external_target.id] path varchar } // Traits TableGroup trait_group { trait entity_traits } Table trait { id int [pk] name varchar [not null] description text } Table entity_traits { entity_id int [ref: > entity.id] trait_id int [ref: > trait.id] } // ---------------------------------------------- // Action Table action { id int [pk, ref: - entity.id] description text [not null, note: "{}.system.description"] type action_type [not null, note: "{}.system.actionType.value"] actions int [null, note: "{}.system.actions?.value"] category action_category [null, note: "{}.system.category"] // Нет у 81 объекта death_note bool [null, note: "{}.system.deathNote"] Note: '''{} = Item.action Перенаправление: {}.system.publication -> entity_sources {}.system.traits -> entity_traits {}.system.frequency -> ??? Возможно нужно на общую frequency Рассмотреть: {}.system.selfEffect {}.system.duration {}.system.start - .value всегда 103462347 {}.system.target Не использованы поля: {}.system.subfeatures - пишем в описании пока что, потом подключение таблицы {}.system.actionCategory - всегда пробел??? ''' } Enum action_type { action free reaction passive } Enum action_category { offensive defensive interaction familiar } // Ancestery Table ancestry { id int [pk, ref: - entity.id] description text [not null, note: "{}.system.description"] hp int [not null, note: "{}.system.hp"] reach int [not null, note: "{}.system.reach"] size ancestry_size [not null, note: "{}.system.size"] speed int [not null, note: "{}.system.speed"] vision ancestry_vision [not null, note: "{}.system.vision"] Note: '''{} = Item.ancestry Перенаправление: {}.system.publication -> entity_sources {}.system.traits -> entity_traits Рассмотреть: {}.system.boosts {}.system.flaws {}.system.items - TODO добавить в определение dict-типа {}.system.lanuages Не использованы поля: {}.system.additionalLanguages ''' } Enum ancestry_size { med lanuages system tiny } Enum ancestry_vision { normal low-light-vision darkvision } // Armor Table armor { id int [pk, ref: - entity.id] description text [not null, note: "{}.system.description"] ac_bonus int [not null, note: "{}.system.acBonus"] strength int [null, note: "{}.system.strength"] check_penalty int [not null, note: "{}.system.checkPenalty"] dex_cap int [not null, note: "{}.system.dexCap"] speed_penalty int [not null, note: "{}.system.speedPenalty"] bulk float [not null, note: "{}.system.bulk"] category armor_category [not null, note: "{}.system.category"] group armor_group [null, note: "{}.system.group"] // 16 без группы level int [not null, note: "{}.system.level.value"] price int [not null, note: "price({}.system.price.value)"] size armor_size [not null, note: "{}.system.size"] Note: '''{} = Item.armor Перенаправление: {}.system.publication -> entity_sources {}.system.traits -> entity_traits Рассмотреть: {}.system.base_item - возможно связь на себя {}.system.material {}.system.runes {}.system.specific Не использованы поля: {}.system.containerId - пустое {}.system.hardness - всегда 0 {}.system.hp - всегда 0 {}.system.quantity - всегда 1 ''' } Enum armor_category { light heavy medium light-barding heavy-barding unarmored } Enum armor_group { leather plate wood chain cloth skeletal composite } Enum armor_size { med lg } // Background Table background { id int [pk, ref: - entity.id] description text [not null, note: "{}.system.description"] Note: '''{} = Item.background Перенаправление: {}.system.publication -> entity_sources {}.system.traits -> entity_traits Рассмотреть: {}.system.boosts Не использованы поля: ''' } // Feat Table feat { id int [pk, ref: - entity.id] description text [not null, note: "{}.system.description"] action_type feat_action_type [note: "{}.system.actionType.value"] actions int [null, note: "{}.system.actions?.value"] category feat_category [not null, note: "{}.system.category"] level int [not null, note: "{}.system.level.value"] level_taker int [null, note: "{}.system.level.taken"] // Всего 2 значения: 1, 2 max_takable int [null, note: "{}.system.level.maxTakable"] location varchar(12) [null, note: "{}.system.level.location"] only_level_1 bool [null, note: "{}.system.onlyLevel1"] Note: '''{} = Item.feat Перенаправление: {}.system.publication -> entity_sources {}.system.traits -> entity_traits {}.system.frequency -> feat_frequency Рассмотреть: {}.system.prerequisites {}.system.selfEffect {}.system.duration {}.system.start - .value всегда 103462347 {}.system.target Не использованы поля: {}.system.subfeatures - пишем в описании пока что, потом подключение таблицы {}.system.actionCategory - всегда пробел??? ''' } Enum feat_action_type { passive action reaction free } Enum feat_category { ancestryfeature classfeature calling class skill general ancestry bonus deityboon curse pfsboon } Table feat_frequency { feat_id int [pk, ref: > feat.id] max int [not null, note: "{Item.feat}.system.frequency.max"] per int [not null, note: "{Item.feat}.system.frequency.per"] value int [null, note "{Item.feat}.system.frequency.value - что это вообще?!"] } /* Table template { id int [pk, ref: - entity.id] description text [not null, note: "{}.system.description"] Note: '''{} = Item. Перенаправление: {}.system.publication -> entity_sources {}.system.traits -> entity_traits Рассмотреть: Не использованы поля: ''' } */