티스토리 뷰
영양제 전체 목록 테이블과, 복용 여부 테이블이 나뉘어져 있는데 사용자가 영양제를 삭제하면 복용 여부 테이블에는 남아있는데 영양제 실체는 사라져서 ‘-1개 남았어요’ 이런 식으로 나타는 오류가 있었습니다. 그렇다고 영양제 복용 여부에서도 삭제해버리면 과거에 먹었던 것도 기록이 사라지는 문제가 있었습니다.
✅ 영양제목록 테이블에 기본값이 nil인 deleteDate컬럼을 추가해서 사용자가 삭제하면 현재 Date 값을 update 해주었습니다.
사용자가 캘린더 날짜를 클릭해서 그 날 먹어야했던 영양제를 조회할 때 영양제의 deleteDate <= 선택한 날 이면 삭제했다고 처리하고, deleteData > 선택한 날 > regDate 이면 영양제가 있다고 처리했습니다.
final class RealmSupplement: Object {
@Persisted(primaryKey: true) var id: UUID // PK
@Persisted var regDate: Date // 영양제 등록일
@Persisted var name: String // 영양제 이름
@Persisted var days: List<Int> // 영양제 복용 요일
@Persisted var times: List<Date> // 영양제 복용 시간
@Persisted var deleteDate: Date? // 영양제 삭제일
convenience init(name: String, days: List<Int>, times: List<Date>) {
self.init()
self.regDate = Date()
self.name = name
self.days = days
self.times = times
self.deleteDate = nil
}
}
댓글