0

私は現在、サーバーからレシピを保存および受信するように求められているプロジェクトに取り組んでいます。レシピは、サーバーの ip + id に json 形式で保存されます。提出する 2 つのレシピ間で重複しないことが保証される ID を作成する良い方法を考えていました。これらの ID を作成するための標準的な例外的な方法はありますか、それとも最大の ID を追跡する int を保存し、誰かがレシピをサーバー側に保存したいときはいつでもそれをプルする方が良い考えですか?

前もってありがとう、
クラッシー

public void addRecipe(Recipe recipe, String URL) throws IllegalStateException,     IOException{
    // TODO Implement the server-side ID tracking
    //int id = getID();
    //recipe.setId(id);
    HttpPost httpPost = new HttpPost(URL+recipe.getId());
    StringEntity stringEntity = null;
    try {
        stringEntity = new StringEntity(gson.toJson(recipe));
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    httpPost.setHeader("Accept","application/json");

    httpPost.setEntity(stringEntity);
    HttpResponse response = null;
    response = httpclient.execute(httpPost);

    //      String status = response.getStatusLine().toString();
    //      System.out.println(status);
    HttpEntity entity = response.getEntity();

    try {
        // May need if statement, check isStreaming();
        entity.consumeContent();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    //May possibly need to deallocate more resources here. No 4.0 implementation of releaseconnection();
}

多分このコードは役に立ちますか?これは、レシピをサーバーに保存する方法です。

4

2 に答える 2

0

Java を使用して生成しても構わない場合は、次のようにUUIDを使用できます。

UUID identifier = UUID.fromString(gson.toJson(recipe));
// use Strings as your id field
String uuidUniqueId = identifier.toString();

それにもかかわらず、データベースで ID 生成を処理できるようにすることを強くお勧めします。結局のところ、データベースは、オブジェクトのストレージを最適化する方法を、StackOverflow の私たち (または Oracle の善良な人々) よりもよく知っています。

于 2013-03-16T08:35:11.753 に答える
0

すべてのデータベース ベンダーは、何らかの (代理) ID 生成メカニズムをサポートしています。

オブジェクトをデータベースに保存すると、それを使用できます。

オブジェクトを LDAP に保存する場合は、この目的でノード DN を使用できます。

別の方法として、パスポート番号、社会保障番号 (悪い考えですが、性質を説明するためだけに)、車のプレート番号、またはオブジェクトを一意に識別するそれらの組み合わせなどの自然な識別子を使用することもできます。

必ずしも何らかのサロゲート (実際には数値型) ID を使用する必要はありません。

人々は自然主キーを忘れがちですが、非常に役に立ちます。

あなたの場合、レシピが公開されたときのサーバーIP +タイムスタンプかもしれません。

ただし、2 つのサーバーが同じレシピを公開することはできます。それらをどのように区別しますか?

それらを平等に扱いますか?

オブジェクトのアイデンティティを定義するのはあなたです。

ビジネス要件によって異なります。

于 2013-03-16T08:25:03.243 に答える