問題は、「データベースを適切に正規化しようとしている」というのは、ほぼ確実に間違った答えだということです。
焦点を最終目標に戻さなければなりません。その最終目標を達成する最善の方法 (おそらく複数のリリースで) と、短期的および長期的にどのような費用がかかるかです。回答で技術的負債について言及しているのを見たことがありますが、コストの見積もりではそれらの要因を考慮する必要があります。
「別の列を追加するだけですか?」というのは悪い考えではないかもしれません。あなたは本当にビジネスケース全体を与えていません。一方、彼らは無知な技術的な質問であなたの否定的な回答に異議を唱えました。彼らは「いいえ」と聞くのを好まなかったので、それはあなたが要件を理解するのを助けることの核心にはなりません. (問題の元の文が何であったか知りたいです。)
データベースを正規化することは技術的な問題であり、システムが満たさなければならない要件には関係ありません。保守性などの特定の特性を持つシステムを提供するために使用するシステム設計の原則です。しかし、ユーザーのニーズを満たしていない保守可能なシステムの価値はゼロですが、ユーザーのニーズを満たしている保守不可能なシステムの価値はゼロではありません (メンテナンスのコストがそれを超える可能性があります。これはビジネス上の問題です)。EAV やその他のメカニズムが必要かどうかも重要ではありません。システムの複雑さやコストが増加するだけです。
要件が高すぎて実装できない場合、それはビジネス ケースの一部です。これらのテーブルがモデル化するアーキテクチャやエンティティの種類について十分に説明していません。100 人のクライアントがいるとします。特定のエンティティの列に重複がある場合があります。クライアントの 95% は、オプションの請求先住所やミドルネームの列をまったく使用しませんが、これらの列が省略されているわけではありません。それだけでなく、多くの場合、オリジナルのデザインになっています! または、これが Products テーブルで、すべてのクライアントが多くの特別な列を必要とし、重複がない場合は、代わりにユーザー定義のフィールド システム (EAV/XML/タグ - 設計は要件に一致する必要があります) が必要になる場合があります。まとまりのあるシステム設計を維持します。
ビジネスが技術的負債の議論を無視することはめったにありません。特に、提案されたソリューションがユーザーのニーズを満たすことが示され、柔軟性がセールス ポイントになる場合はなおさらです。私が見つけたのは、解決策の選択肢をできる限り迅速かつ徹底的に提示することで、解決策の選択肢をできるだけ迅速かつ徹底的に提示した方が、企業は多くの場合、何かを実行できない理由やコストを説明するのに時間をかけずに好むということです。午後と実際に仕事を終わらせます。