java - dao接口设计删除一篇文章依据id(数字类型),是否需要传递,作者id?
PHPz
PHPz 2017-04-18 10:25:34
0
3
536

大家好!我在写一个个人博客,博客平台允许多个作者,现在设计dao接口遇到问题,当我删除一篇文章的时候是否应该传递作者id,代码如下:

方式一

// 防止其他作者通过修改id参数删除文章,需要在service中,先判断该文章是当前作者的
int deleteById(Integer id);

方式二

// 删除文章,依据编号和作者编号
int deleteByIdAndAuthorId(Integer id, Integer authorId);

请问该怎么做,给我点建议?

PHPz
PHPz

学习是最好的投资!

全員に返信(3)
阿神

私の個人的な実装アイデアは2つです
daoレイヤーで行う最初の方法は次のようになります。 このように、サービスがセッションを通じて操作ユーザーのIDを取得した後、データベースを操作するときに作成者IDを追加します。 dao 層でそれをフロントエンドに渡すインターフェースは、記事 ID をバックエンドに渡すことです。dao 層でそれを行う 2 番目の方法は、サービス層で記事 ID に対応する著者 ID を取得することです。操作ユーザーIDと著者IDが一致するかどうかを判断し、一致しない場合は、フロントエンドインターフェースはエラーを返します

あなたのコメントに注意を払っていませんでした

そこで、私の考えをもう一度説明させてください。私はあなたが言った方法が良いと思います。 まず、Dao 層はデータベースの操作に重点を置いています。 2 番目のメソッドは、判定ロジックを書き換えるのに便利ですが、同時に、誤った操作を示すプロンプトを返すこともできます。 Dao レイヤーでは、最初にフェッチし、次に判断し、次に削除操作を返すことができる場合は、削除する方法と似ています。操作したデータの数が少ない場合は、2 番目の方法を選択することもできます。操作したデータが 0 個の場合、その記事は操作したユーザーのものではありませんが、削除後の操作も非常に面倒です。完了しました。この記事はあなたのものではないので、操作することはできません。よく考えると、それは奇妙です
少し個人的な意見ですが、そうであれば、議論を続けても構いません

いいねを押す +0
阿神

個人的な感想

ブログが 1 人の作成者に対応する場合、2 番目の方法を直接検討できます。
実装は論理的に簡単であり、データベースのクエリの数も減らすことができます。 作者以外の管理者もブログシステムを操作できるとシステムが考えている場合は、方法1を検討してくださいこの

拡張性が高く

、要件の変更や削除の際に便利です。
——ブログシステムをやったことがない人の推測

いいねを押す +0
洪涛

他の著者が id パラメータを変更して記事を削除できないようにするには、まずサービス内で記事が現在の著者に属していることを確認する必要があります

この操作では、どのようにパラメータを渡しても、それをチェックする必要があります。

問題は単純で、authorId をセッションから取得するか、クエリ文字列から取得するかになります。

長年ブログを書いてきた私の経験に基づいています。人気のブログ プログラムは 两个参数都从query string里面传递。但是,不是强制的。也就是你只传postId也是可以的。之所以这样做。是为了有更多的参数可以供自定义url 形式で使用されます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート