スペースマーケット Engineer BlogPublicationへの投稿🧩アンチパターンを採用したあの日k_y162025/11/06に公開2件MySQLDatabase設計アンチパターンテーブル設計ideaスペースマーケット Engineer BlogPublicationスペースを簡単に貸し借りできるサービス「スペースマーケット」のエンジニアによる公式ブログです。 弊社採用技術スタックはこちら -> whatweuse.dev/company/spacemarketDiscussionError40123日前今回の場合、期間というのは独立したエンティティではなく、価格変更というイベントに従属したデータです。 「更新があったときだけ行を増やす方式」という設計そのものがアンチパターンと思っていらっしゃるのかどうか読み取れませんでしたが、このテーブルは正規化が崩れているわけではなく、良くとられる設計パターンです。 参考: スロー・チェンジ・ディメンション(Slowly Changing Dimensions) https://zenn.dev/pei0804/articles/slowly-changing-dimensions k_y1621日前コメントありがとうございます! そうですね、SCD的な履歴管理自体は一般的だと思います。 今回は期間が他機能でも使われる独立エンティティでありながら、この機能内で閉じて扱っている点を「アンチパターン寄り」として書いていました。 ご指摘ありがとうございます! 返信を追加
Error40123日前今回の場合、期間というのは独立したエンティティではなく、価格変更というイベントに従属したデータです。 「更新があったときだけ行を増やす方式」という設計そのものがアンチパターンと思っていらっしゃるのかどうか読み取れませんでしたが、このテーブルは正規化が崩れているわけではなく、良くとられる設計パターンです。 参考: スロー・チェンジ・ディメンション(Slowly Changing Dimensions) https://zenn.dev/pei0804/articles/slowly-changing-dimensions k_y1621日前コメントありがとうございます! そうですね、SCD的な履歴管理自体は一般的だと思います。 今回は期間が他機能でも使われる独立エンティティでありながら、この機能内で閉じて扱っている点を「アンチパターン寄り」として書いていました。 ご指摘ありがとうございます! 返信を追加
k_y1621日前コメントありがとうございます! そうですね、SCD的な履歴管理自体は一般的だと思います。 今回は期間が他機能でも使われる独立エンティティでありながら、この機能内で閉じて扱っている点を「アンチパターン寄り」として書いていました。 ご指摘ありがとうございます!
Discussion
今回の場合、期間というのは独立したエンティティではなく、価格変更というイベントに従属したデータです。
「更新があったときだけ行を増やす方式」という設計そのものがアンチパターンと思っていらっしゃるのかどうか読み取れませんでしたが、このテーブルは正規化が崩れているわけではなく、良くとられる設計パターンです。
参考: スロー・チェンジ・ディメンション(Slowly Changing Dimensions)
コメントありがとうございます!
そうですね、SCD的な履歴管理自体は一般的だと思います。
今回は期間が他機能でも使われる独立エンティティでありながら、この機能内で閉じて扱っている点を「アンチパターン寄り」として書いていました。
ご指摘ありがとうございます!