私はいくつかのプロジェクトを持つプロジェクトサーバのために小さなチケットシステムを作りたいと思っています。別のIDに応じてauto_incrementで1つのIDを作成することは可能ですか?
(TicketID, ProjectID)
(1, 1)
(2, 1)
(3, 1)
(4, 2)
(5, 2)
(6, 3)
をしかし、私は思う:次のように - は、これまでのところTicketIDは、プロジェクトAとTicketID 1とチケットと別のプロジェクトBとTicketID 2取得します。このプロジェクトのためのチケットがあるすなわち、世界的にカウントされますここで
(TicketID, ProjectID)
(1, 1)
(2, 1)
(3, 1)
(1, 2)
(2, 2)
(1, 3)
テーブル:
CREATE TABLE IF NOT EXISTS tickets (
TicketID INT UNSIGNED NOT NULL AUTO_INCREMENT,
ProjectID INT UNSIGNED NOT NULL,
...
PRIMARY KEY (TicketID, ProjectID) ,
FOREIGN KEY (ProjectID) REFERENCES projects (ProjectId),
...
);
それを作ることが可能です。TicketIDのようなPROJECTIDに応じてカウントする方が良いだろうSQLとProjectIDに応じてauto_incrementのTicketID? また、SQLを使用する方法がないので、手動でPHPコードでIDを設定する必要がありますか?
+1これはきれいなアプローチです。元の質問に答えるには:いいえ、従属する自動増分フィールドを作成する方法はありません。少なくともMySqlやSQL Serverではそうではありませんが、どこにでも実装されているとは想像もつきません。 – Tomalak