Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ DB Public

Database Systemの授業でMySQLとPythonを使って中古品販売サイトを作りました。Database System 수업에서 MySQL과 파이썬을 사용해서 당근마켓과 같은 중고제품 판매 사이트를 만들었습니다.

Notifications You must be signed in to change notification settings

GodRony/DB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Database System STUDY

학교에서 배운 데이터베이스 시스템에 대한 공부 내용을 정리했습니다. 한국어버전은 아래에 있습니다.

学校で Database System を学びながら整理した内容です。

DBFinalProject 폴더가 저의 기말 프로젝트이니 이 폴더만 확인하시면 됩니다. 「DBFinalProject」 フォルダが私の期末プロジェクトなので、このフォルダだけをご確認ください。

MySQL と Python を連携 させて、中古品を売買できるマーケットを作成しました。 基本的な機能として、ログイン・会員登録・チャット・投稿作成・投稿閲覧・チャットルーム・取引履歴 を実装しました。 以下は、与えられたデータを基に、段階的に正規化を実行し、ER図を作成した内容 です。

✅ 正規化 進行, ER-ダイアグラム構築 image image

image image

以下は、与えられたデータで正規化を進めた内容です。 第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 のみに依存するように設計を改善する。

✅ ログインおよび会員登録機能 「ログイン」ボタンを押すとログインページが表示 され、「会員登録」ボタンを押すと会員登録ページが表示 される。

データベースと連携 して、ドロップダウンメニューにニックネームが表示 されるようにした。

地域の選択も可能 にした。 image image

✅ 投稿の閲覧および新規投稿機能 ドロップダウンで地域を選択 すると、その地域の投稿のみが表示される。

投稿には タイトル、地域名、状態、価格、販売者情報 を表示。

チャットボタンを追加し、販売者と直接やり取りできるようにした。

「すべて」ボタンを押すと、すべての地域の投稿を表示できる。

「投稿登録」ボタンを押すと投稿が登録され、投稿一覧ページで確認できる。 image

✅ チャット履歴の閲覧機能 「チャット履歴を見る」ボタンを押すと、過去のチャット内容が表示される。

メッセージを入力し、「送信」ボタンを押すと、チャット履歴にメッセージが追加される。 image image

コード部分は、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 쿼리를 어떻게 수행했는지 참고해주시길 바랍니다.


About

Database Systemの授業でMySQLとPythonを使って中古品販売サイトを作りました。Database System 수업에서 MySQL과 파이썬을 사용해서 당근마켓과 같은 중고제품 판매 사이트를 만들었습니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages