проблема в HashMap < String, ArrayList < Model > > (Создание представления комментариев в Android)

Здесь приведена поправка к «надёжному» подходу Билла Карвина, используя составной ключ ( place_type, place_id ) для устранения предполагаемых нарушений нормальной формы:

CREATE TABLE places (
  place_id INT NOT NULL UNIQUE,
  place_type VARCHAR(10) NOT NULL
     CHECK ( place_type = 'state', 'country' ),
  UNIQUE ( place_type, place_id )
);

CREATE TABLE states (
  place_id INT NOT NULL UNIQUE,
  place_type VARCHAR(10) DEFAULT 'state' NOT NULL
     CHECK ( place_type = 'state' ),
  FOREIGN KEY ( place_type, place_id ) 
     REFERENCES places ( place_type, place_id )
  -- attributes specific to states go here
);

CREATE TABLE countries (
  place_id INT NOT NULL UNIQUE,
  place_type VARCHAR(10) DEFAULT 'country' NOT NULL
     CHECK ( place_type = 'country' ),
  FOREIGN KEY ( place_type, place_id ) 
     REFERENCES places ( place_type, place_id )
  -- attributes specific to country go here
);

CREATE TABLE popular_areas (
  user_id INT NOT NULL,
  place_id INT NOT NULL,
  UNIQUE ( user_id, place_id ),
  FOREIGN KEY ( place_type, place_id ) 
     REFERENCES places ( place_type, place_id )
);

. Что этот проект не может гарантировать, что для каждой строки в places существует строка из states или countries (но не для обоих). Это ограничение внешних ключей в SQL. В полной СУБД, совместимой со стандартами SQL-92, вы можете определить отложенные ограничения между таблицами, которые позволят вам достичь того же, но они неуклюжи, связаны с транзакцией, и такая СУБД еще не вышла на рынок.

0
задан Rishabh Shukla 3 March 2019 в 14:51
поделиться

1 ответ

Попробуйте инициализировать список replyModel во внутреннем цикле for, кажется, что все элементы добавляются в один и тот же список и добавляются в один и тот же список со всеми ключами. Таким образом, получается весь список со всеми ключами.

                  for(int i=0;i<model.size();i++){
                   JSONArray replyArrays = replyObject.getJSONArray(String.valueOf(model.get(i).comment_id));
                  //Initialise inside the loop 
                  ArrayList<ReplyCommentModel> replyModel = new ArrayList();
                   for(int j=0;j<replyArrays.length();j++){
                       JSONObject jsonObject1 = replyArrays.getJSONObject(j);
                       Integer id = jsonObject1.getInt("id");
                       String name = jsonObject1.getString("name");
                       String comment_image = jsonObject1.getString("photo");
                       Integer user_id = jsonObject1.getInt("user_id");
                       String comment = jsonObject1.getString("comment");
                       String added_on = jsonObject1.getString("addedon");
                       String imageURl = Constant.IMAGE_URL+Constant.COMMENT_USER_IMAGE_URL+comment_image;
                       replyModel.add(new ReplyCommentModel(comment,name,imageURl,added_on,user_id,id));
                   }
                   if(replyModel != null){
                       replyModelMap.put(String.valueOf(model.get(i).comment_id),replyModel);

                   }
               }
0
ответ дан Kaveri 3 March 2019 в 14:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: