본문 바로가기

Python/프로젝트03(도서관리)7

프로젝트03. 도서 관리 프로그램 만들기6-sqlite3 대여 함수를 작성하던 지난 포스팅에 이어 나가기 전, 한가지 선행되어야 하는 조건이 있다. 바로 회원의 상태인데... 앞의 포스팅에서 도서를 대여할 때 가장 먼저 회원이 대여 가능한 상태인지를 확인하는 과정이 있었다. 그런데, 지금 해당 상태에 아무런 값이 없어, 관리자가 변경할 수 있는 함수를 먼저 추가하려 한다. 1. 회원 상태 변경 하기(관리자 기능) # 회원 등록 def registe_members(members_id, members_name, members_dob, phone_no, address, e_mail): # ID 등록 여부 확인 cursor.execute(f'select * from members where members_id = \'{members_id}\'') members_id_.. 2024. 1. 10.
프로젝트03. 도서 관리 프로그램 만들기5-sqlite3 이제 기본적인 Table이 완성 되었고, 도서 대여 상태에 따라 업데이트 등이 정상적으로 이루어지면 DB쪽 구성은 완성된다. 여기서 다시 정리를 해보면 우리가 만든 4개의 테이블은 각각 다른 동작을 위해 필요하지만 서로 연관 되어 있다. 1. 기본 테이블 정리 1) books_info 테이블 - 도서를 전체적으로 관리하는 테이블로 해당 테이블 내에 도서명과 대여권수를 확인할 수 있기 때문에 나중에 회원들이 도서명으로 대여 여부를 검색할 때 사용하게 될 테이블이다. 2) book_detail_info 테이블 - 같은 도서명이더라도 각각의 고유번호와 상태를 알 수 있는 정보를 가지고 있는 테이블로 해당 테이블에서 도서가 가지는 고유값을 통해 도서의 상태를 알 수 있는 것과 대여나 반납 시 해당 값을 이용해 .. 2024. 1. 9.
프로젝트03. 도서 관리 프로그램 만들기4-sqlite3 이제 회원을 등록해볼 차례이다. 1. 회원 테이블 구상하기 회원 등록시 필요한 정보는 - 회원번호(내부 생성), 회원 ID, 회원 이름, 생년월인, 회원 상태, 연락처, 주소, 이메일, 현재 대여 권수, 메모1, 메모2 로 생성할 예정이다. 회원 상태는 승인대기, 장기간 미사용 고객이나 블랙리스트 고객의 상태를 표기 및 관리하기 위해 임의로 만든 컬럼이며, 현재 대여 권수 컬럼은 1명의 회원이 무제한으로 책을 대여하지 못하도록 1인이 최대 5권만 대여 가능하도록 조건을 주기 위해 설정한 컬럼이다. 메모1, 2는 혹시나 하는 마음에서 만들어 두는 예비용 컬럼이다. 프로그램을 만들 때 결과물을 정확히 예측하고 기획된 대로 만드는 것도 중요하지만 이런 예비용 컬럼을 한, 두개 정도 만들어 두면 혹시 빠트리거나.. 2023. 12. 4.
프로젝트03. 도서 관리 프로그램 만들기3-sqlite3 앞선 포스팅에서 DB와 테이블을 생성했다면, 이번에는 추가와 검색을 해보도록 하겠다. 앞선 엑셀의 예시 자료를 커서를 이용해 입력할 예정인데, 입력하는 과정은 1. 동일 도서 등록 확인 books_info 테이블에 제목을 검색 후, 제목과 출판사가 같은 등록 현황이 있는지 확인한다. 아래의 매서드로 도서명과 출판사를 파라미터로 받고, 결과 값이 없을 때는 (0, 0, 0)을, 결과 값이 있을 때는 (book_key, total_count, available_count)를 튜플로 전달 받고 반환한다. # 동일 도서 등록 여부 확인 def check_books_info_by_title_publisher(book_title, publisher): cursor.execute(f'SELECT BOOK_KEY, T.. 2023. 12. 4.
프로젝트03. 도서 관리 프로그램 만들기2-sqlite3 앞선 포스팅에서 고민한 것과 같이 데이터를 효율적으로 관리하기 위해선 DB를 구성하는게 좋다. 그리고 그중 우리가 다뤄볼 DBMS는 sqlite3이다. sqlite3의 장점은 python에 내장된 모듈이기 때문에 별도의 설치가 없어도 사용이 가능하다. 오늘 포스팅은 SQL의 DDL문을 통해 책을 관리할 기본 테이블을 작성하고 데이터를 넣어보는 포스팅이다. 1. DB 생성하기 # main_db.py import sqlite3 # DB생성 및 Auto Commit, RollBack conn = sqlite3.connect(r'.\books_manager_database.db', isolation_level=None) # 해당 경로에 books_manager_database.db DB파일이 생성된다. # 커서.. 2023. 12. 2.
프로젝트03. 도서 관리 프로그램 만들기1-기능 고민하기 일단 앞선 포스팅에서 이야기한만큼 도서관과 서점의 경우 책을 관리하는 기준이 다르다. 도서관의 경우, 책의 대여에 따른 상태 변화가 책마다 나타나야 한다. 만약 [올라운드 파이썬] 이라는 책이 3권이 있다면, 도서관에서는 2권은 회원 1과 회원2에게 대여 중, 나머지 1권은 2층 A열에 있다는 개별적인 책의 정보가 필요하지만 서점은 샘플로 꺼내둔 책이 있다면 책의 위치가 나타나고, 재고가 몇 권인지에 대한 수량과 가격만 알면 되지 개별적인 책의 출입을 확인할 필요가 없다. 위에서 설명한 것과 같이 목적에 따라 관리하는 대상도 방법도 달라져야 하고, 이러한 내용이 DB에 반영이 되어야한다. 0. 도서 관리 프로그램 만들기(도서관용) 그래서 좀 더 많은 기능이 필요할 것으로 보이는 도서관 대여 시스템을 기준.. 2023. 12. 1.
프로젝트03. 도서 관리 프로그램 만들기(intro) 이번에 작성해 볼 프로그램은 도서 관리 프로그램이다. 아직까지 정확히 떠오른 기획은 없지만, 고민하며 하나씩 만들어 볼 예정인데, 큰 고민 없이 시작하는 이유는 판매 목적의 프로그램이 아닌데다가 성능과 속도라는 점을 고려치 않고 기능 구현과 라이브러리 연습에 비중을 두기 때문이다. 당연한 얘기지만 실제 코딩도 중요하지만 기획이나 설계에 많은 시간과 노력을 들여야한다. 1. 장소에 따라 도서관리 프로그램을 만들겠다는 생각을 정하고 목적을 생각하니, 2가지 정도가 떠올랐다. 장소에 따라 사용 목적과 기능이 달라질텐데, 책과 관련된 첫번째 장소가 도서관, 두번째 장소가 서점이었다. 단순히 장소에 따른 기능을 떠올려보면 도서관이라면, 대여가 주목적인만큼, 회원 관리와 책의 위치, 대여 상태에 대한 관리가 이루어.. 2023. 12. 1.
반응형