akasima / xero_commerce

xe3 에서 사용가능한 e-commerce 플러그인
Other
21 stars 10 forks source link

Product, Cart, OrderItem 의 DB테이블 이름 및 구조 변경건의 #134

Open darron1217 opened 4 years ago

darron1217 commented 4 years ago

DB구조를 보다보니 약간은 헷갈리는 부분이 있어서 보다 단순화 & 표준화하면 좋겠다는 생각이 계속 있었습니다. 최근 제 PR에서 DB구조에 대한 변경이 많이 있었는데, 이참에 DB쪽을 제대로 정리했으면 하는 바램입니다. Cafe24 쇼핑몰 API, 해외 오픈소스 쇼핑몰 등을 참고하여 정리해봤습니다.

  1. DB이름을 복수형으로 통일 (ex. xero_commerce_order => xero_commerce_orders)
  2. ProductOptionItem의 이름을 ProductVariant로 변경
  3. Cart, Order에 적용된 type_id, type_type을 product_id로 변경. unit_id, unit_type도 option_id로 변경. (가독성 향상과 성능개선의 이유입니다)
  4. CartGroup, OrderGroup을 각각 Cart와 Order로 바꾸고 현재 Cart, Order를 CartItem, OrderItem으로 변경. (~~Item 의 개념이 좀더 사람들에게 친숙할것 같습니다)

이걸 다 반영하면 어마어마하게 바뀔것이고, 아마 이전버전과 호환되긴 힘들겠지만 오픈소스인 만큼 새로 유입된 사람들이 구조를 쉽게 이해할 수 있으면 하는 바램에서 건의드려봅니다 :)

darron1217 commented 4 years ago

https://github.com/akasima/xero_commerce/tree/reengineering 브랜치에서 작업중인 내용입니다

네이밍규칙

배송용어정리 (국내,해외 오픈소스에서 주로 사용하는 용어로 변경)

akasima commented 4 years ago

변경이 될거라면, 하위 호환을 위해서 테이블을 새로 만들고 데이터 마이그레이션을 하는게 좋을 것 같습니다.

의견 주신사항을 볼 때 업데이트과정에서 심하게 오류가 발생할 것 같지는 않습니다만, 외부 프로그램을 추가해서 연계하는 경우 갑작스럽게 발생하는 오류가 심각한 문제를 발생시킬 것 같습니다.

업데이트 버전은 2.0.0 으로 업데이트하고 하위 호환 안됨을 명시하면 좋을 것 같습니다. xero_commerce를 이용해서 또다른 확장 프로그램 제작해서 사용하시는 분들은 커뮤니티 참여하여 문제를 해결할 수 있도록 하면 될 것 같네요.

Double-underscore ( 언더바언더바, '__' ) 형식은 사용해보지 않아서 의견 결정 하는게 쉽지는 않네요. 가독성 및 관리 목적으로 새로운 표준을 만들어 본다는 xero_commerce 자체 스팩으로 보고 진행하겠습니다.

darron1217 commented 4 years ago

@akasima 네네 버전을 2.0으로 하여 호환 안됨을 명시하는건 생각하고 있었습니다. 현재 버전을 실제로 비즈니스에서 활용하는 경우가 많지 않을것 같아서 (기능이 많이 없다보니...) 아직 베타버전이다 생각하고 작업했습니다.