/ DJANGO

(Django) 프로젝트(3) - 3. 모델링하기

Django Project -3

210705 ~ 210709 모델링 구현

기존에 항상 써왔던 장고에서 제공해주는 sqlite3 대신 mysql을 연동시킬 예정이다. mysql에 대한 지식이 부족해 각자 따로 공부할 시간이 필요하다. 현재 mysql workbench로 ERD를 작성한 상황이다. 기본 지식을 공부한 후 장고와 mysql을 연동시킬 예정이다.

진행할 사전 공부

mysql 설계 및 구축

django와 연동시키는 방법

데이터 mysql table에 저장하기

mysql과 django의 관계

mysql과 aws의 관계

mysql의 기본적인 쿼리문


구현된 ERD 모델링

neonews_db


질문 사항

Q) 기사 스크래핑 후 기사의 출처인 potal과 원본 언론사 press를 따로 table로 빼는것이 좋은가?
A) 따로 potal과 press 모델을 가지고 써야할 기능이 있다면 따로 빼는 것이 좋음. 하지만 굳이 그럴필요가 없다면 article 모델에 한번에 받는 것이 속도상 유리함

Q) 기사의 세부사항을 스크래핑할때 세부사항 페이지와 똑같은 태그 순서로 어떻게 커스터마이징해서 화면에 보여줄수 있을까 ?
A) 세부내용 전체를 스크래핑하여 정규표현식등을 사용해 img는 src를 스크래핑하고 content가 담겨있는 p태그를 순서대로 스크래핑 할 수 있음, 효율적이지 않지만 또다른 방법으로는 태그까지 전체를 스크래핑해오는 방법이 있음

Q) user의 세부 추가 사항을 입력받을때 user의 관심 카테고리와 키워드 table을 따로 빼는가 좋은가?
A) user의 관심 카테고리는 미리 테이블안에 데이터를 작성해놓고 유저와 n:n으로 엮는 방법을 선택함. 키워드 테이블은 아티클과 n:n으로 엮는 방법을 선택함 두가지의 데이터를 하나의 테이블에 받을 경우 카테고리와 키워드가 섞여있어 헷갈릴것 같다는 의견이 나와 각각 생성함

Q) user앱과 social앱, news앱 중 category와 keyword table을 어디에 넣는게 적절할까?
A) 해당 테이블은 유저의 세부사항을 받을때 필요한 테이블이기 때문에 user앱에 있는 모델에 작성함

Q) user와 category,keyword가 n:n일때 article의 category와 keyword가 각각 category, keyword table과 1:n으로 엮인다. 이렇게 엮는 것이 적절한 행위일까?
A) user와는 n:n으로 엮었지만 keyword의 경우 유저가 어떤 키워드를 입력할지 알수 없기 때문에 article과 keyword는 엮을수 없다고 판단함. 이때 category의 경우는 미리 테이블에 데이터를 정해놓고 선택하기 때문에 article과 1:n으로 엮어놓음