DBFinalProject 폴더가 저의 기말 프로젝트이니 이 폴더만 확인하시면 됩니다. 「DBFinalProject」 フォルダが私の期末プロジェクトなので、このフォルダだけをご確認ください。
MySQL と Python を連携 させて、中古品を売買できるマーケットを作成しました。 基本的な機能として、ログイン・会員登録・チャット・投稿作成・投稿閲覧・チャットルーム・取引履歴 を実装しました。 以下は、与えられたデータを基に、段階的に正規化を実行し、ER図を作成した内容 です。
以下は、与えられたデータで正規化を進めた内容です。 第1正規形:各カラムが原子値を持つ必要があります。 つまり、カラムが複数の値を含めては いけませんし、各値はこれ以上分けて保存してはいけません。
第2正規型:基本鍵全体に従属していない非主要属性があってはならない という規則を持っています。 つまり、非主要なプロパティがデフォルト キーの一部だけに依存してはいけません。
第3正規形(3NF):(推移的従属性) 第3正規形では、非主キー属性が他の非主キー属性に依存してはなりません。 つまり、推移的従属性が存在してはいけません。 transactions テーブルでは、final_price、status、last_update_date が transaction_id に依存していますが、final_price と status が 推移的従属関係 にある可能性があります。
例えば、取引状態(status)が「完了」なら、価格(final_price)は固定 されるとします。
解決策: status と final_price を別のテーブルに分離する。 取引状態によって価格を保存する必要がない場合 は、final_price を transactions から分離し、transactions が transaction_id のみに依存するように設計を改善する。
✅ ログインおよび会員登録機能 「ログイン」ボタンを押すとログインページが表示 され、「会員登録」ボタンを押すと会員登録ページが表示 される。
データベースと連携 して、ドロップダウンメニューにニックネームが表示 されるようにした。
✅ 投稿の閲覧および新規投稿機能 ドロップダウンで地域を選択 すると、その地域の投稿のみが表示される。
投稿には タイトル、地域名、状態、価格、販売者情報 を表示。
チャットボタンを追加し、販売者と直接やり取りできるようにした。
「すべて」ボタンを押すと、すべての地域の投稿を表示できる。
「投稿登録」ボタンを押すと投稿が登録され、投稿一覧ページで確認できる。
✅ チャット履歴の閲覧機能 「チャット履歴を見る」ボタンを押すと、過去のチャット内容が表示される。
メッセージを入力し、「送信」ボタンを押すと、チャット履歴にメッセージが追加される。
コード部分は、myapp.py ファイルを参考にして、delete、insert、selectクエリをどのように実行したのか参考にしてください
MySQL과 파이썬을 연동해서 중고제품을 사고파는 마켓을 만들었습니다. 기본적으로 로그인과 회원가입 , 채팅, 게시물 작성, 게시물 조회, 대화방 , 거래내역 기능을 구현했습니다.
아래는 주어진 데이터로 정규화를 진행한 내용입니다. 제1정규형 : 각 컬럼이 원자값을 가져야 합니다. 즉, 컬럼이 여러 값을 포함해서는 안 되며, 각 값은 더 이상 나눠서 저장할 수 없어야 합니다.
제2정규형 : 기본키 전체에 종속되지 않은 비주요 속성이 있으면 안 된다 는 규칙을 가지고 있습니다. 즉, 비주요 속성이 기본키의 일부에만 의존하면 안 됩니다.
제3정규형 : (이행적 종속성): 제3정규형에서는 비주요 속성이 다른 비주요 속성에 의존해서는 안 됩 니다. 즉, 이행적 종속성이 있으면 안 됩니다. transactions 테이블에서 final_price, status, last_update_date가 transaction_id에 의존하고 있지만, final_price와 status가 서로 이행적 종속 관계에 있을 수 있습니다. 예를 들어, 거래 상태(status)가 "완료"라면 가격(final_price)은 고정될 수 있습니다. 해결: status 와 final_price를 다른 테이블로 분리하거나, 거래 상태에 따라 가격을 저장할 필요가 없 다면 final_price를 transactions에서 분리하여 transactions가 transaction_id에만 의존하도 록 개선할 수 있습니다.
로그인 및 회원가입 기능 : 로그인을 누르면 로그인페이지가 회원가입을 누르면 회원가입 페이지가 나오게함. DB와 연동해서 드롭박스를 누르면 별칭들이 나오게함. 동네선택도 가능하게 함.
게시글 조회 및 새 게시글 작성 기능 : 드롭박스로 동네를 선택하면 그 동네에 해당된 글만 볼 수 있도록 했다. title, region_name, status , price 판매자를 볼 수 있게했다. 또 채팅할 수 있도록 버튼을 만들었다.
전체 버튼을 누르면 모든 지역의 글들을 볼 수 있다.
게시글 등록버튼을 누르면 게시글이 등록이 되고 게시글 조회를 들어가면 작성된 글을 볼 수 있다.
대화내역보기를 누르면 대화내역을 볼 수 있다. 메세지를 입력하고 전송하기 버튼을 누르면 대화내역보기에 반영이 된다.
코드부분은 myapp.py 파일을 참고해서 delete, insert, select 쿼리를 어떻게 수행했는지 참고해주시길 바랍니다.