SQLテーブルのNAMEフィールドは、他のフィールドを組み合わせたものです。
1_2_UserId_CreationDatetime例:1_2_domain \ Elisa_15-07-2012 08:30:57
私のNAMEフィールドには、同じ名前が許可されていないことを表す一意の制約があります。主キーはautoincidです。
新しいデータ行が挿入されたときにUniqueConstraintExceptionをキャッチすることは理にかなっていますが、ユーザーがWebアプリケーションに2回ログインし、同じ秒でボタンを押す必要があるため、実際には同じ名前を2回持つことはできません。 。
私は本当にそのようなシナリオをテストする必要がありますか?
アップデート
それがワークフローです:
ユーザーは、テンプレートとリリースのリストから選択して、新しいテストプランを作成します。
次に、テストプランがreleaseName_templateName_UserId_CreationDateとともに保存されます
ただし、4つのフィールドには、releaseId、templateId、UserId、およびCreatedDateが保存されます。
ユーザーをNAMEとして表示するには、releaseIdとtemplateId(どちらもint`s)は意味がありません。
したがって、4つのpart_namesすべてを使用してNAMEを保存します。
この複合NAMEフィールドの別の設計代替案は、テストプランテーブルからNAMEフィールドを削除することです。すべてのテストプランをロードするときに、すべてのreleaseIdとtemplateIdのreleaseNameとtemplateNameを取得しようとします。
どう思いますか?エッジケースについての私の元の質問も覚えておいてください...