Draft: Model update
-
La classe DataLink doit avoir un attribut ForeignKey ISAObject.
-
Utiliser des foreignKey pour les interactions entre les différentes class qui héritent de la classe ISAObject. La classe Study doit avoir un attribut ForeignKey Investigations et la classe Assay doit avoir un attribut ForeignKey studies.
comment(julien): Il faudrait voir si la classe ISAObject ne devrait pas être une classe abstraite afin de ne pas apparaître dans le modèle.
classDiagram
class OpenlinkUser {
string vault_id
string mail
def set_vaultid()
def get_vaultid()
}
class Tool {
int id
string name
foreignKey author
string connector
DateTime date_created
def get_all_public_param()
def getPublicParam()
def getPrivrateParam()
def connector()
def is_user_linked()
def get_tool_state_user()
}
Tool "*" -- "1" OpenlinkUser
class ToolParam {
int id
foreignKey tool_id
string key
string value
}
ToolParam "*" -- "1" Tool
class ToolStateUser {
foreignKey user
foreignKey tool
boolean asyncTask
}
ToolStateUser "*" -- "1" OpenlinkUser
ToolStateUser "*" -- "1" Tool
class Datalink {
string name
int dataobject_id
string dataobject_type
string remote_url
bigint size
string icon
boolean has_children
foreignKey tool_id
foreignKey author
foreignKey isaobject
}
Tool "1" -- "*" Datalink
OpenlinkUser "1" -- "*" Datalink
ISAObject "1" -- "*" Datalink
class ISAObject {
int id
string name
string description
foreignKey author
string status
datetime date_created
datetime date_modified
string isa_type
def get_isa_class()
def list_datalink()
}
ISAObject "*" -- "1" OpenlinkUser
class Investigation{
int investigation_id
def list_studies()
def list_users()
def list_tools()
def get_assay()
def get_study()
def get_investigation()
}
ISAObject <|-- Investigation
class Study {
int study_id
foreignKey investigation
def list_assays()
def get_investigation()
def get_assay()
}
Study "*" -- "1" Investigation
class Assay {
int study_id
foreignKey study
}
Assay "*" -- "1" Study
ISAObject <|-- Study
ISAObject <|-- Assay
Edited by Julien Seiler