0

私は個人的に使用するプロジェクト マネージャー サイトを作成しています。サイトのデータベースを構築する最善の方法について質問があります。

Clientリスト、ProjectsTasksInvoicingおよびが含まれPaymentsます。すべてのコンテンツを にリンクできるようにする最善の方法を見つけようとしてい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 に答える