party_bid_core 세 가지 데이터 구조 분석

5980 단어 데이터 구조
더 읽 기
1. 첫 번 째 데이터 구조:
activities = [
    {
        name: "first activity",
        sign_ups: [],
        bids: []
    },
    {
        name: "first activity",
        sign_ups: [
            {
                name: "  ",
                phone: "13600000000"
            },
            {
                name: "  ",
                phone: "15600000000"
            }
        ],
        bids: [
            {
                name: "  1",
                biddings: [
                    {
                        name: "  ",
                        phone: "13600000000",
                        price: "12"

                    },
                    {
                        name: "  ",
                        phone: "15600000000",
                        price: "10"
                    }
                ]
            }
        ]
    }
];

이러한 데이터 구 조 는 모든 정 보 를 하나의 배열 에 저장 하고 모든 활동 은 name, sign 를 저장 합 니 다.ups,bids,sign_ups 와 bids 는 이벤트 신청 과 가격 경쟁 정 보 를 각각 저장 합 니 다. 구조 가 매우 뚜렷 하고 특정한 데 이 터 를 찾 는 것 도 좋 습 니 다. 그러나 데 이 터 를 저장 하거나 수정 할 때 끼 워 넣 는 것 이 많 기 때문에 절차 가 비교적 번 거 롭 습 니 다. 가격 경쟁 정 보 를 저장 하 는 것 을 예 로 들 면:
Bidding.prototype.save_bidding = function () {
    var bidding = this;
    var activities = Activity.get_activities();
    _.map(activities, function (activity) {
        if (activity.name == Activity.get_active_activity_name()) {
            _.map(activity.bids, function (bid) {
                if (bid.name == Bid.get_current_bid()) {
                    bid.biddings.push(bidding)
                }
            })
        }
    })
    localStorage.setItem("activities", JSON.stringify(activities));
}
 
2. 두 번 째 데이터 구조:
activities = {
    "0": {
        name: "first activity",
        sign_ups: [],
        bids: [],
        biddings: {}
    },
    "1": {
        name: "second activity",
        sign_ups: [
            {
                name: "  ",
                phone: "13600000000"
            },
            {
                name: "  ",
                phone: "15600000000"
            }
        ],
        bids: ["  1", "  2"],
        biddings: {
            "  1": [
                {
                    phone: "13600000000",
                    price: "12"
                },
                {
                    phone: "15600000000",
                    price: "10"
                }
            ],
            "  2": [
                {
                    phone: "13600000000",
                    price: "10"

                },
                {
                    phone: "15600000000",
                    price: "12"
                },
            ]
        }
    ]
};

이러한 데이터 구 조 는 모든 정 보 를 하나의 hash 표 에 저장 하고 모든 활동 은 하나의 key 에 대응 하 며 그 value 는 name, sign 도 포함한다.ups, bids, biddings, 구조 도 비교적 명확 합 니 다. 첫 번 째 구조 에 비해 그 는 가격 경쟁 이름 을 하나의 배열 로 추출 하여 저장 하여 사용 하기에 더욱 편리 합 니 다. 데 이 터 를 수정 할 때 해당 하 는 key 를 찾 아 키 를 수정 하면 됩 니 다. 가격 경쟁 정 보 를 저장 하 는 것 을 예 로 들 면:
Bidding.prototype.save_bidding = function () {
    var bidding = this;
    var bid = Activity.get_current_bid();
    var activities = Activity.get_activities();
    _.map(activities, function (value, key) {
        if (key == Activity.get_current_activity()) {
            value.biddings[bid].push(bidding);
        }
    })
    localStorage.setItem("activities", JSON.stringify(activities));
}

3. 세 번 째 데이터 구조:
activities = [
    {
        id: "0",
        name: "first activity"
    },
    {
        id: "1",
        name: "second activity"
    }
];
sign_ups = [
    {
        name: "  ",
        phone: "13600000000",
        activity_id: "0"
    },
    {
        name: "  ",
        phone: "15600000000",
        activity_id: "0"
    }
]
bids = [
    {
        name: "  1",
        activity_name: "0",
        biddings: [
            {
                phone: "13600000000",
                price: "9"
            },
            {
                phone: "15600000000",
                price: "10"
            }
        ]
    }
];

이러한 데이터 구 조 는 이벤트 이름 (activities), 신청 정보 (sign ups), 가격 경쟁 정보 (bids) 를 분리 하여 저장 하고 구조 가 뚜렷 하지 않 습 니 다. 데 이 터 를 찾 을 때 불편 하지만 끼 워 넣 는 것 이 비교적 적 고 데 이 터 를 수정 하거나 저장 할 때 특히 편리 합 니 다. 가격 경쟁 정 보 를 저장 하 는 것 을 예 로 들 면:
Bid.create_new_bid = function (activity_id) {
    var bids = Bid.get_bids();
    var bid = new Bid(activity_id);
    bids.push(bid);
    localStorage.setItem("bids", JSON.stringify(bids));
}

한 마디 로 하면 세 가지 데이터 구 조 는 각각 우열 이 있 고 첫 번 째 부터 세 번 째 데이터 구조의 확장 성 이 점점 좋아 지고 데 이 터 를 저장 하 는 것 이 비교적 편리 하 다.구조 가 뚜렷 하지 않 고 데 이 터 를 채취 하 는 것 이 불편 하 다. 첫 번 째 는 한 층 한 층 추출 하 는 것 이 고, 세 번 째 는 특정 조건 을 만족 시 키 는 값 을 선별 하 는 것 이다 (여기 서 만족 시 켜 야 할 모든 조건 을 조심해 야 한다).

좋은 웹페이지 즐겨찾기