I have a Receipts table that has several tables that normalise the actions on a receipt record.
- Warehouse: Stores the locations
- Status: Store the statuses of a Receipt
- Comment: Stores all the comments relevant to a Receipt record. In the receipts table only an icon is displayed “comments_count” column
- Attachment: Stores all the attachments relevant to a Receipt record.
- Person: Stores information on who is assigned the task.
When a User changes the status of a Receipt record to Processing. It is assigned to a Person who also has the ability to add a Comment or Attachment.
My question is have i defined all the relationships correctly as unsure if the Processing relationships are correct in this example?
<code>models:
Receipt:
warehouse_id: id foreign:warehouses
location: string
status_id: id foreign:statuses
po_number: string
arrival: datetime
supplier: string nullable
delivery: string nullable
quantity: integer nullable
consignment: string nullable
comments_count: string default='fa-file 0'
attachments_icon: string default='fa-upload'
timestamps: true
relationships:
belongsTo: Warehouse, Status
hasMany: Comment, Attachment
hasOne: Processing
Warehouse:
name: string unique
timestamps: true
relationships:
hasMany: Receipt
Status:
name: string unique
color: string unique
timestamps: true
relationships:
hasMany: Receipt
Comment:
receipt_id: id foreign:receipts onDelete=cascade
comment: text
timestamps: true
relationships:
belongsTo: Receipt
Attachment:
receipt_id: id foreign:receipts onDelete=cascade
file_path: string
file_type_icon: string
timestamps: true
relationships:
belongsTo: Receipt
Person:
name: string
email: string unique
timestamps: true
relationships:
hasMany: Processing
Processing:
receipt_id: id foreign:receipts onDelete=cascade
person_id: id foreign:persons
timestamps: true
relationships:
belongsTo: Receipt, Person
</code>
<code>models:
Receipt:
warehouse_id: id foreign:warehouses
location: string
status_id: id foreign:statuses
po_number: string
arrival: datetime
supplier: string nullable
delivery: string nullable
quantity: integer nullable
consignment: string nullable
comments_count: string default='fa-file 0'
attachments_icon: string default='fa-upload'
timestamps: true
relationships:
belongsTo: Warehouse, Status
hasMany: Comment, Attachment
hasOne: Processing
Warehouse:
name: string unique
timestamps: true
relationships:
hasMany: Receipt
Status:
name: string unique
color: string unique
timestamps: true
relationships:
hasMany: Receipt
Comment:
receipt_id: id foreign:receipts onDelete=cascade
comment: text
timestamps: true
relationships:
belongsTo: Receipt
Attachment:
receipt_id: id foreign:receipts onDelete=cascade
file_path: string
file_type_icon: string
timestamps: true
relationships:
belongsTo: Receipt
Person:
name: string
email: string unique
timestamps: true
relationships:
hasMany: Processing
Processing:
receipt_id: id foreign:receipts onDelete=cascade
person_id: id foreign:persons
timestamps: true
relationships:
belongsTo: Receipt, Person
</code>
models:
Receipt:
warehouse_id: id foreign:warehouses
location: string
status_id: id foreign:statuses
po_number: string
arrival: datetime
supplier: string nullable
delivery: string nullable
quantity: integer nullable
consignment: string nullable
comments_count: string default='fa-file 0'
attachments_icon: string default='fa-upload'
timestamps: true
relationships:
belongsTo: Warehouse, Status
hasMany: Comment, Attachment
hasOne: Processing
Warehouse:
name: string unique
timestamps: true
relationships:
hasMany: Receipt
Status:
name: string unique
color: string unique
timestamps: true
relationships:
hasMany: Receipt
Comment:
receipt_id: id foreign:receipts onDelete=cascade
comment: text
timestamps: true
relationships:
belongsTo: Receipt
Attachment:
receipt_id: id foreign:receipts onDelete=cascade
file_path: string
file_type_icon: string
timestamps: true
relationships:
belongsTo: Receipt
Person:
name: string
email: string unique
timestamps: true
relationships:
hasMany: Processing
Processing:
receipt_id: id foreign:receipts onDelete=cascade
person_id: id foreign:persons
timestamps: true
relationships:
belongsTo: Receipt, Person