0

我正在制作一个供我个人使用的项目经理站点,并且我有一个问题,即为该站点构建数据库的最佳方法是什么。

它将涉及Client列表、ProjectsTasksInvoicingPayments。我正在尝试找出确保可以将所有内容链接到Client. 这是我放在记事本中的内容,只是为了了解我的数据库应该是什么样子。

Clients: id, name
Projects: id, client, project_name, due_date
Tasks: id, client, project_name, task, due_date, complete
Invoices: invoice_id, client, project_name, date, due, balance, payment, pay_date
Invoice_item: id, item, amount

如果有人对我应该如何做到这一点有更好的想法,请随时告诉我。

4

2 回答 2

0

@GuberX - 为什么每张桌子都只有id

执行以下操作看起来更具描述性:

[Client]: cliID, name
[Project]: projID, client, project_name, due_date
[Task]: taskID, client, project_name, task, due_date, complete
[Invoice]: invID, client, project_name, date, due, balance, payment, pay_date
[Invoice_item]: InvItemID, item, amount

使用您指定的外键的示例(在评论中):

multiple tasks, single invoice but accept multiple payments

Task [taskID, client, project_name, task, due_date, complete, *projID]

注意上面的 *projID。在这里为您进一步阅读

于 2012-08-26T22:57:24.477 回答
0
Clients: id, name
Projects: id, client_id, name, due_on
Tasks: id, client_id, project_id, name, due_on, completed_at
Invoices: id, project_id, issued_on, due_on, balance, payment, paid_on
Invoice_item: id, invoice_id, item, amount

在通过项目查找时,客户名称/ID 未存储在发票表中。还要考虑是否要跟踪发票的部分付款或多个 project_milestones(截止日期) - 如果是这样,那么这些都需要一个表格。

哦,是的,不要忘记项目状态及其影响:引用、赢得、丢失、完成等。

于 2012-08-26T22:57:50.583 回答