よくあるblogの投稿があるようなサイトのCMSのテーブル設計を考えており、質問があります。
色々ググったのですが、大体下記の似たような設計記事が出てきており、どのようにすれば良いか迷っております。
記事の設計
Posts table
- id
- user_id
- content
- publish_date
- deleted_date
- is_published
のような、一般的な投稿に、userが紐づいており、内容と使用する日付ががついています。
このパターンだった場合、
- 「投稿済」の記事を編集しようとすると、同じテーブルの内容を変更することになり、「公開中」の物をいじることになりそうだと思っております。
- 非公開->編集->公開って流れでも良いのですが、いったん非公開にするのも効率が悪い気がしております。
なので、
Posts table
と同じカラムのtmpPosts table
を追加して、こちらで編集、公開時には、Post table
へ丸々コピーとすれば、上記の問題も解決できそうな気がしています。
しかし、同じようなテーブルが作成されて、更新ミスなど整合性が取れなくなったりする心配があるように思えており、どのような設計にしたらいいか教えていただきたいです。
Posts table
tmpPosts table
に加え、statusだけを管理するPost_status table
など用意して、PostsとtmpPostsはどちらもPost_statusを参照するようにすれば少しは問題なくなるのでは?と考えたりしました。
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/07 10:18
2020/06/07 10:22
2020/06/07 10:54