- 질문 게시판입니다.
Date | 21/04/13 12:17:13 |
Name | 거소 |
Subject | MySQL 관련 질문입니다 |
안녕하세요 SQL 초짜가 질문 드립니다 MongoDB만 쓰다가 SQL 쓰려니 피똥 싸는 중입니다. 현재 테이블 구조는 이렇습니다 user key (중복가능) / order key(중복불가-auto increment와 비슷한 역할) / type key(중복가능) / 기타 데이터 컬럼 user key와 order key, type key는 각각 pk로 설정되어 있으며, 한 유저가 여러 데이터 row을 갖고 있고, 해당 row들의 유일한 키 값으로 order key를 활용하는 형태입니다. 이건 이전 외주사가 이렇게 설계를 해 놓았는데 제 생각에는 id key(중복불가-auto increment 설정) / user key(중복가능) / type key(중복가능) / 기타 데이터 컬럼 으로 변경하고 id key만 pk키로 작동하는게 좋지 않을까 생각하고 있습니다. 이렇게 설정하는게 더 각 row를 조작하는 부분에 있어서 좋지 않나 하여 변경을 생각 중입니다. 혹시 이렇게 변경함으로서 생기는 DB 성능의 문제 같은 게 있을까요? 또는 이렇게 바뀌어도 별 반 차이가 없는 걸까요? 제 생각에는 테이블 내에 종속성이 중복되는 것은 별로 바람직하지 않다고 생각했거든요. 짧은 식견으로는 별 문제가 없을 것 같은데 혹시 몰라 질문 드립니다. 해당 데이터 테이블은 아무리 데이터가 많이 쌓여도 500만 건을 넘지는 않을 예정입니다. 0
이 게시판에 등록된 거소님의 최근 게시물
|
솔직히 설명만으로는 테이블 구조가 잘 안와닿습니다만...
schema 복붙이 어렵다면, 테이블 별로 설명을 해주시면 좋을것 같네요.
처음 언급하신건 order테이블인게 확 와닿아서 별 문제 없는것 같은데, 개선하시려는 두번째 테이블 스키마는 무슨 용도인지 모르겠습니다.
교과서적인 조언만 드리자면, 데이터 타입에 따라 기타 컬럼 데이터 유무를 관리하면 반드시 정합성 문제가 발생합니다. 용도 별로 나누고 key를 쓰세요.
mysql이 처음이라면 wp 데이터베이스가 CMS공부하기 좋습니다.
잘만든건 아니지만... term_taxonomy나 terms 관리방법이 제법 교과서적입니다.
나... 더 보기
schema 복붙이 어렵다면, 테이블 별로 설명을 해주시면 좋을것 같네요.
처음 언급하신건 order테이블인게 확 와닿아서 별 문제 없는것 같은데, 개선하시려는 두번째 테이블 스키마는 무슨 용도인지 모르겠습니다.
교과서적인 조언만 드리자면, 데이터 타입에 따라 기타 컬럼 데이터 유무를 관리하면 반드시 정합성 문제가 발생합니다. 용도 별로 나누고 key를 쓰세요.
mysql이 처음이라면 wp 데이터베이스가 CMS공부하기 좋습니다.
잘만든건 아니지만... term_taxonomy나 terms 관리방법이 제법 교과서적입니다.
나... 더 보기
솔직히 설명만으로는 테이블 구조가 잘 안와닿습니다만...
schema 복붙이 어렵다면, 테이블 별로 설명을 해주시면 좋을것 같네요.
처음 언급하신건 order테이블인게 확 와닿아서 별 문제 없는것 같은데, 개선하시려는 두번째 테이블 스키마는 무슨 용도인지 모르겠습니다.
교과서적인 조언만 드리자면, 데이터 타입에 따라 기타 컬럼 데이터 유무를 관리하면 반드시 정합성 문제가 발생합니다. 용도 별로 나누고 key를 쓰세요.
mysql이 처음이라면 wp 데이터베이스가 CMS공부하기 좋습니다.
잘만든건 아니지만... term_taxonomy나 terms 관리방법이 제법 교과서적입니다.
나중에 ACF나 WooCommerce플러그인이 신규 테이블을 어떻게 만드는지 보시면 모던한 mysql 사용법도 익히실 수 있을 겁니다.
(WooCommerce는 이커머스용 테이블 잔뜩 만드니 도움될지도 모르겠네요)
https://codex.wordpress.org/Database_Description
schema 복붙이 어렵다면, 테이블 별로 설명을 해주시면 좋을것 같네요.
처음 언급하신건 order테이블인게 확 와닿아서 별 문제 없는것 같은데, 개선하시려는 두번째 테이블 스키마는 무슨 용도인지 모르겠습니다.
교과서적인 조언만 드리자면, 데이터 타입에 따라 기타 컬럼 데이터 유무를 관리하면 반드시 정합성 문제가 발생합니다. 용도 별로 나누고 key를 쓰세요.
mysql이 처음이라면 wp 데이터베이스가 CMS공부하기 좋습니다.
잘만든건 아니지만... term_taxonomy나 terms 관리방법이 제법 교과서적입니다.
나중에 ACF나 WooCommerce플러그인이 신규 테이블을 어떻게 만드는지 보시면 모던한 mysql 사용법도 익히실 수 있을 겁니다.
(WooCommerce는 이커머스용 테이블 잔뜩 만드니 도움될지도 모르겠네요)
https://codex.wordpress.org/Database_Description
전 dba 는 아니고 dba 옆자리에서 일하는 사람인데요;
적어 주신 것만 봐서는 id를 auto increment primary key 로 잡으시고 user, type 은 index 로 걸어 두시면 될 것 같습니다.
어떤 값을 저장하고 무슨 역할을 하는 데이터인지는 모르지만, id가 별도로 추가된 걸 봐서는 <user, type> 으로 고유 식별자 역할을 할 수 있는 게 아닐 거 같고 그럼 중복 가능한 컬럼을 여럿 묶어서 pk 로 잡을 필요가 없을거 같습니다.
user나 type 으로 찾거나 정렬할 일이 있다면 index 만 걸어 두셔도 될듯요?
적어 주신 것만 봐서는 id를 auto increment primary key 로 잡으시고 user, type 은 index 로 걸어 두시면 될 것 같습니다.
어떤 값을 저장하고 무슨 역할을 하는 데이터인지는 모르지만, id가 별도로 추가된 걸 봐서는 <user, type> 으로 고유 식별자 역할을 할 수 있는 게 아닐 거 같고 그럼 중복 가능한 컬럼을 여럿 묶어서 pk 로 잡을 필요가 없을거 같습니다.
user나 type 으로 찾거나 정렬할 일이 있다면 index 만 걸어 두셔도 될듯요?
목록 |
|