xero_commerce icon indicating copy to clipboard operation
xero_commerce copied to clipboard

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

Open darron1217 opened this issue 4 years ago • 3 comments

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 avatar Apr 17 '20 09:04 darron1217

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

네이밍규칙

  • xero_commerce_xxx의 형식에서 xero_commerce__xxx 형식으로 언더바_를 하나 더 추가하여 phpmyadmin에서 그룹핑 될 수 있게 변경 image

  • 테이블이름을 복수형으로 변경 (두 테이블간 관계를 명시하는 테이블의 경우 단수형으로 표시) 예시) 일반테이블: users, shops 관계: shop_user

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

  • DeliveryCompany -> Carrier
  • ShopDelivery -> ShopCarrier
  • UserDelivery -> UserAddress
  • OrderDelivery -> OrderShipment

darron1217 avatar May 03 '20 00:05 darron1217

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

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

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

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

akasima avatar May 06 '20 01:05 akasima

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

darron1217 avatar May 06 '20 02:05 darron1217