Исправление схемы

This commit is contained in:
2025-04-11 15:57:10 +04:00
parent 46927ab3d2
commit b925866bba
2 changed files with 206 additions and 189 deletions
+112
View File
@@ -0,0 +1,112 @@
// -----------------------------------------------------------
// Armor
Table armor {
id int [pk, ref: - entity.id]
ac_bonus int [not null, note: "{}.acBonus"]
strength int [null, note: "{}.strength"]
check_penalty int [not null, note: "{}.checkPenalty"]
dex_cap int [not null, note: "{}.dexCap"]
speed_penalty int [not null, note: "{}.speedPenalty"]
bulk float [not null, note: "{}.bulk"]
category armor_category [not null, note: "{}.category"]
group armor_group [null, note: "{}.group"] // 16 без группы
level int [not null, note: "{}.level.value"]
price int [not null, note: "price({}.price.value)"]
size armor_size [not null, note: "{}.size"]
extra text [null, note: "json для того, что надо рассмотреть"]
Note: '''{} = Item.armor.system
Перенаправление:
{}.publication -> entity_sources
{}.traits -> entity_traits
Рассмотреть:
{}.base_item - возможно связь на себя
{}.material
{}.runes
{}.specific
Не использованы поля:
{}.containerId - пустое
{}.hardness - всегда 0
{}.hp - всегда 0
{}.quantity - всегда 1
'''
}
Enum armor_category {
light
heavy
medium
light_barding // light-barding
heavy_barding // heavy-barding
unarmored
}
Enum armor_group {
leather
plate
wood
chain
cloth
skeletal
composite
}
Enum armor_size {
med
lg
}
// Backpack
Table backpack {
id int [pk, ref: - entity.id]
level int [note: "{}.bulk.level.value"]
capacity int [note: "{}.bulk.heldOrStowed"]
heldOrStowed float [note: "{}.bulk.heldOrStowed"]
ignored int [note: "{}.bulk.ignored"]
value float [note: "{}.bulk.value"]
hardness int [note: "{}.bulk.hardness"]
quantity int [note: "{}.bulk.quantity"]
price int [note: "price({}.price.value)"]
size varchar [note: "{}.bulk.size (always med)"]
stowing bool [note: "{}.stowing"]
extra text [null, note: "json для того, что надо рассмотреть"]
Note: '''{} = Item.backpack.system
Перенаправление:
{}.publication -> entity_sources
{}.traits -> entity_traits
Рассмотреть:
{}.material
Не использованы поля:
{}.collapsed - всегда false
'''
}
Enum backpack_usage {
wornbackpack
held_in_two_hands // held-in-two-hands
worn
held_in_one_hand // held-in-one-hand
worngarment
}
// consumable -> equipment?
// equipment
// kit -> equipment
// shield -> equipment
// treasure -> equipment
// weapon -> equipment
+94 -189
View File
@@ -2,31 +2,42 @@
// Entity // Entity
Table entity { Table entity {
id int [pk] id int [pk, increment]
name varchar [not null, note: "{*}.name"] name varchar [not null, note: "{*}.name"]
img varchar(100) [note: "{*}.img"] img varchar(100) [not null, note: "{*}.img"]
description text [not null, note: "{*}.system.description(.value)"] description text [not null, note: "{*}.system.description(.value)"]
description_gm text [null, note: "{*}.system.description.gm"] description_gm text [null, note: "{*}.system.description.gm"]
type entity_type [not null] type entity_type [not null]
slug varchar slug varchar [not null]
rarity entity_rarity [not null, default: "common", note: "{*}.system.rarity"] rarity entity_rarity [not null, default: "common", note: "{*}.system.traits.rarity"]
is_translated bool [default: false, note: "Первичный импорт идёт из англоязычного источника, перевод приходит вторым"] is_translated bool [default: false, note: "Первичный импорт идёт из англоязычного источника, перевод приходит вторым"]
is_checked bool [default: false, note: "Флаг, указывающий, что перевод был проверен вручную и не требует обновления парсером"] is_checked bool [default: false, note: "Флаг, указывающий, что перевод был проверен вручную и не требует обновления парсером"]
} }
Enum entity_type { Enum entity_type {
action
ancestry
background
backpack
campaign_feature
class
condition
deity
feat feat
heritage
spell
} }
Enum entity_rarity { Enum entity_rarity {
common common
uncommon uncommon
rare rare
unique
} }
// Alias // Alias
Table entity_aliases { Table entity_aliases {
id int [pk, increment] id int [pk, increment]
entity_id int [ref: > entity.id] entity_id int [not null, ref: > entity.id]
alias varchar [not null] alias varchar [not null]
type alias_type [not null] type alias_type [not null]
} }
@@ -46,48 +57,50 @@ Table entity_keywords {
keyword_id int [ref: > keyword.id] keyword_id int [ref: > keyword.id]
} }
Table keyword_aliases { Table keyword_aliases {
keyword_id int [pk, ref: keyword.id] keyword_id int [pk, ref: > keyword.id]
type alias_type [pk] type alias_type [pk]
value varchar value varchar [not null]
} }
// Sources // Sources
Table source { Table source {
id int [pk, increment] id int [pk, increment]
name varchar name varchar [not null]
url varchar url varchar [not null]
} }
Table entity_sources { Table entity_sources {
entity_id int [ref: > entity.id] entity_id int [ref: > entity.id]
source_id int [ref: > source.id] source_id int [ref: > source.id]
suffix varchar [default: "", note: "Для источников Foundry - полный UUID объекта"] suffix varchar [not null, default: "", note: "страница и проч."]
md5 varchar [not null, note: "Для контроля обновлений"] is_remaster bool [not null]
} }
// External links // External links
Table external_target { Table external_target {
id int id int [pk, increment]
name varchar name varchar [not null]
icon varchar icon varchar [not null]
} }
Table entity_external { Table entity_external {
entity_id int [ref: > entity.id] entity_id int [pk, ref: > entity.id]
target_id int [ref: > external_target.id] target_id int [pk, ref: > external_target.id]
path varchar path varchar [not null]
suffix varchar [not null, default: "", note: "Для источников Foundry - полный UUID объекта"]
md5 varchar [not null, note: "Для контроля обновлений"]
} }
// ---------------------------------------------- // ----------------------------------------------
// Traits // Traits
Table trait { Table trait {
id int [pk] id int [pk, increment]
name varchar [not null] name varchar [not null]
description text description text [not null]
type trait_type type trait_type [not null]
} }
Table entity_traits { Table entity_traits {
entity_id int [ref: > entity.id] entity_id int [pk, ref: > entity.id]
trait_id int [ref: > trait.id] trait_id int [pk, ref: > trait.id]
} }
Enum trait_type { Enum trait_type {
regular regular
@@ -107,24 +120,19 @@ Table frequency {
Используется для подключения полей из таблиц схем {Item.feat} и {Item.action}''' Используется для подключения полей из таблиц схем {Item.feat} и {Item.action}'''
} }
// Duration
Table duration {
id int [pk, ref: - entity.id]
}
// Languages // Languages
Table language { Table language {
id int [pk] id int [pk, increment]
name varchar name varchar [not null]
rarity entity_rarity rarity entity_rarity [not null]
} }
// Trainings // Trainings
Table trainings { Table trainings {
id int [pk] id int [pk, increment]
key varchar key varchar [not null]
Note: "Текстовые записи - в глоссарии"
} }
// ---------------------------------------------- // ----------------------------------------------
@@ -138,6 +146,8 @@ Table action {
category action_category [null, note: "{}.category"] // Нет у 81 объекта category action_category [null, note: "{}.category"] // Нет у 81 объекта
death_note bool [null, note: "{}.deathNote"] death_note bool [null, note: "{}.deathNote"]
extra text [null, note: "json для того, что надо рассмотреть"]
Note: '''{} = Item.action.system Note: '''{} = Item.action.system
Перенаправление: Перенаправление:
@@ -205,7 +215,7 @@ Table ancestry_languages {
} }
Table ancestry_boosts { Table ancestry_boosts {
id int [pk, increment] id int [pk, increment]
ancestry_id int [ref: > ancestry.id] ancestry_id int [not null, ref: > ancestry.id]
boost bool [not null, default: true, note: "false = flaw"] boost bool [not null, default: true, note: "false = flaw"]
value varchar(3) [null, note: "null = free boost (all 6 values in foundry)"] value varchar(3) [null, note: "null = free boost (all 6 values in foundry)"]
} }
@@ -233,8 +243,8 @@ Table background {
} }
Table background_items { Table background_items {
id int [pk] id int [pk]
background_id int [ref: > background.id] background_id int [not null, ref: > background.id]
entity_id int [ref: > entity.id, note: "{}.name"] entity_id int [not null, ref: > entity.id, note: "{}.name"]
level int [note: "{}.level"] level int [note: "{}.level"]
// name string [note: "{}.name (?)"] // name string [note: "{}.name (?)"]
@@ -242,17 +252,17 @@ Table background_items {
Note: "{} = Item.background.system.items" Note: "{} = Item.background.system.items"
} }
Table background_skills { Table background_skills {
id int [pk] id int [pk, increment]
background_id int [ref: > background.id] background_id int [not null, ref: > background.id]
name varchar [note: "{}.[]"] name varchar [not null, note: "{}.[]"]
is_skill bool [note: "true = [value] false = [lore]"] is_skill bool [not null, note: "true = [value] false = [lore]"]
Note: "{} = Item.background.system.items.[lore|value]" Note: "{} = Item.background.system.items.[lore|value]"
} }
Table background_boosts { Table background_boosts {
id int [pk, increment] id int [pk, increment]
background_id int [ref: > background.id] background_id int [not null, ref: > background.id]
value varchar(3) [null, note: "null = free boost (all 6 values in foundry)"] value varchar(3) [null, note: "null = free boost (all 6 values in foundry)"]
} }
@@ -263,12 +273,12 @@ Table campaign_feature {
level int [null, note: "{}.level"] level int [null, note: "{}.level"]
type action_type [not null, note: "{}.actionType"] type action_type [not null, note: "{}.actionType"]
actions int [note: "{}.actions"] actions int [not null, note: "{}.actions"]
category campaign_feature_category [note: "{}.category"] category campaign_feature_category [not null, note: "{}.category"]
prerequisites varchar [null, note: "{}.prerequisites.value.[0].value"]
prerequisites varchar [null, note: "{}.prerequisites"]
extra text [null, note: "json для того, что надо рассмотреть"]
Note: '''{} = Item.campaignFeature.system Note: '''{} = Item.campaignFeature.system
Перенаправление: Перенаправление:
@@ -297,10 +307,10 @@ Enum campaign_feature_category {
Table class { Table class {
id int [pk, ref: - entity.id] id int [pk, ref: - entity.id]
hp int [note: "{}.hp"] hp int [not null, note: "{}.hp"]
perception int [note: "{}.perception"] perception int [not null, note: "{}.perception"]
spellcasting bool [note: "{}.spellcasting"] spellcasting bool [not null, note: "{}.spellcasting"]
additionalTrainedSkills int [note: "{}.trainedSkills.additional"] additionalTrainedSkills int [not null, note: "{}.trainedSkills.additional"]
Note: '''{} = Item.class.system Note: '''{} = Item.class.system
@@ -324,25 +334,25 @@ Table class {
''' '''
} }
Table class_key_abilities { Table class_key_abilities {
id int [pk] id int [pk, increment]
class_id int [ref: > class.id] class_id int [not null, ref: > class.id]
value varchar(3) [not null] value varchar(3) [not null]
} }
Table class_progression { Table class_progression {
id int [pk, increment] id int [pk, increment]
class_id int [ref: > class.id] class_id int [not null, ref: > class.id]
level int level int [not null]
type class_progression_type type class_progression_type [not null]
entity_id [null, ref: > entity.id] entity_id int [null, ref: > entity.id]
} }
Table class_trainings { Table class_trainings {
id int [pk, increment] id int [pk, increment]
class_id int [ref: > class.id] class_id int [not null, ref: > class.id]
item int [null, ref: > trainings.id] item int [null, ref: > trainings.id]
name varchar [null, note: "{}.attacks.other"] name varchar [null, note: "{}.attacks.other"]
stage: int [note: "0-untrained, 1-trained..."] stage int [not null, note: "0-untrained, 1-trained..."]
} }
Enum class_progression_type { Enum class_progression_type {
entity [note: "{}.system.items"] entity [note: "{}.system.items"]
@@ -358,6 +368,8 @@ Table condition {
id int [pk, ref: - entity.id] id int [pk, ref: - entity.id]
group condition_group [null] group condition_group [null]
extra text [null, note: "json для того, что надо рассмотреть"]
Note: '''{} = Item.condition.system Note: '''{} = Item.condition.system
@@ -411,18 +423,18 @@ Table deity_attributes {
} }
Table deity_skills { Table deity_skills {
deity_id int [pk, ref: > deity.id] deity_id int [pk, ref: > deity.id]
skill_id trainings [pk, ref: > trainings.id] skill_id int [pk, ref: > trainings.id]
} }
Table deity_spells { Table deity_spells {
id int [pk, increment] id int [pk, increment]
deity_id int [ref: > deity.id] deity_id int [not null, ref: > deity.id]
level int level int [not null]
spell_id int [ref: > spell.id] spell_id int [not null, ref: > spell.id]
} }
Table deity_weapons { Table deity_weapons {
id int [pk, increment] id int [pk, increment]
deity_id int [ref: > deity.id] deity_id int [not null, ref: > deity.id]
weapon varchar weapon varchar [not null]
} }
Table deity_domains { Table deity_domains {
id int [pk, increment] id int [pk, increment]
@@ -514,12 +526,11 @@ Table feat_prerequisites {
Note: "{} = Item.feat.system.prerequisites.value" Note: "{} = Item.feat.system.prerequisites.value"
} }
// Heritage // Heritage
Table heritage { Table heritage {
id int [pk, ref: - entity.id] id int [pk, ref: - entity.id]
ancestry_id [null, ref: > ancestry.id] ancestry_id int [null, ref: > ancestry.id]
Note: '''{} = Item.heritage.system Note: '''{} = Item.heritage.system
@@ -533,17 +544,17 @@ Table heritage {
Table spell { Table spell {
id int [pk, ref: - entity.id] id int [pk, ref: - entity.id]
level int [note: "{}.level"] level int [not null, note: "{}.level"]
cost int [note: "{}.cost"] cost int [not null, note: "{}.cost"]
counteraction bool [note: "{}.counteraction"] counteraction bool [not null, note: "{}.counteraction"]
sustained bool [note: "{}.duration.sustained"] sustained bool [not null, note: "{}.duration.sustained"]
duration varchar [note: "{}.duration.value"] duration varchar [not null, note: "{}.duration.value"]
range varchar [note: "{}.range.value"] range varchar [not null, note: "{}.range.value"]
requirements varchar [note: "{}.requirements"] requirements varchar [not null, note: "{}.requirements"]
target varchar [note: "{}.target.value"] target varchar [not null, note: "{}.target.value"]
time varchar [note: "{}.time.value"] time varchar [not null, note: "{}.time.value"]
can_heightening bool [note: "{}.heightening != null"] can_heightening bool [not null, note: "{}.heightening != null"]
Note: '''{} = Item.spell.system Note: '''{} = Item.spell.system
@@ -588,9 +599,9 @@ Table spell_damage {
Table spell_ritual { Table spell_ritual {
spell_id int [pk, ref: - spell.id] spell_id int [pk, ref: - spell.id]
primary_check varchar [note: "{}.primary.check"] primary_check varchar [not null, note: "{}.primary.check"]
secondary_casters int [note: "{}.secondary.casters"] secondary_casters int [not null, note: "{}.secondary.casters"]
secondary_checks varchar [note: "{}.secondary.checks"] secondary_checks varchar [not null, note: "{}.secondary.checks"]
Note: "{} = Item.spell.system.ritual" Note: "{} = Item.spell.system.ritual"
} }
@@ -630,6 +641,8 @@ Enum spell_damage_kinds {
/* /*
Table template { Table template {
id int [pk, ref: - entity.id] id int [pk, ref: - entity.id]
extra text [null, note: "json для того, что надо рассмотреть"]
Note: '''{} = Item..system Note: '''{} = Item..system
@@ -642,112 +655,4 @@ Table template {
Не использованы поля: Не использованы поля:
''' '''
} }
*/ */
// -----------------------------------------------------------
// Armor
Table armor {
id int [pk, ref: - entity.id]
ac_bonus int [not null, note: "{}.acBonus"]
strength int [null, note: "{}.strength"]
check_penalty int [not null, note: "{}.checkPenalty"]
dex_cap int [not null, note: "{}.dexCap"]
speed_penalty int [not null, note: "{}.speedPenalty"]
bulk float [not null, note: "{}.bulk"]
category armor_category [not null, note: "{}.category"]
group armor_group [null, note: "{}.group"] // 16 без группы
level int [not null, note: "{}.level.value"]
price int [not null, note: "price({}.price.value)"]
size armor_size [not null, note: "{}.size"]
Note: '''{} = Item.armor.system
Перенаправление:
{}.publication -> entity_sources
{}.traits -> entity_traits
Рассмотреть:
{}.base_item - возможно связь на себя
{}.material
{}.runes
{}.specific
Не использованы поля:
{}.containerId - пустое
{}.hardness - всегда 0
{}.hp - всегда 0
{}.quantity - всегда 1
'''
}
Enum armor_category {
light
heavy
medium
light_barding // light-barding
heavy_barding // heavy-barding
unarmored
}
Enum armor_group {
leather
plate
wood
chain
cloth
skeletal
composite
}
Enum armor_size {
med
lg
}
// Backpack
Table backpack {
id int [pk, ref: - entity.id]
level int [note: "{}.bulk.level.value"]
capacity int [note: "{}.bulk.heldOrStowed"]
heldOrStowed float [note: "{}.bulk.heldOrStowed"]
ignored int [note: "{}.bulk.ignored"]
value float [note: "{}.bulk.value"]
hardness int [note: "{}.bulk.hardness"]
quantity int [note: "{}.bulk.quantity"]
price int [note: "price({}.price.value)"]
size varchar [note: "{}.bulk.size (always med)"]
stowing bool [note: "{}.stowing"]
usage
Note: '''{} = Item.backpack.system
Перенаправление:
{}.publication -> entity_sources
{}.traits -> entity_traits
Рассмотреть:
{}.material
Не использованы поля:
{}.collapsed - всегда false
'''
}
Enum backpack_usage {
wornbackpack
held_in_two_hands // held-in-two-hands
worn
held_in_one_hand // held-in-one-hand
worngarment
}
// consumable -> equipment?
// equipment
// kit -> equipment
// shield -> equipment
// treasure -> equipment
// weapon -> equipment