xero_commerce
xero_commerce copied to clipboard
Product, Cart, OrderItem 의 DB테이블 이름 및 구조 변경건의
DB구조를 보다보니 약간은 헷갈리는 부분이 있어서 보다 단순화 & 표준화하면 좋겠다는 생각이 계속 있었습니다. 최근 제 PR에서 DB구조에 대한 변경이 많이 있었는데, 이참에 DB쪽을 제대로 정리했으면 하는 바램입니다. Cafe24 쇼핑몰 API, 해외 오픈소스 쇼핑몰 등을 참고하여 정리해봤습니다.
- DB이름을 복수형으로 통일 (ex. xero_commerce_order => xero_commerce_orders)
- ProductOptionItem의 이름을 ProductVariant로 변경
- Cart, Order에 적용된 type_id, type_type을 product_id로 변경. unit_id, unit_type도 option_id로 변경. (가독성 향상과 성능개선의 이유입니다)
- CartGroup, OrderGroup을 각각 Cart와 Order로 바꾸고 현재 Cart, Order를 CartItem, OrderItem으로 변경. (~~Item 의 개념이 좀더 사람들에게 친숙할것 같습니다)
이걸 다 반영하면 어마어마하게 바뀔것이고, 아마 이전버전과 호환되긴 힘들겠지만 오픈소스인 만큼 새로 유입된 사람들이 구조를 쉽게 이해할 수 있으면 하는 바램에서 건의드려봅니다 :)
https://github.com/akasima/xero_commerce/tree/reengineering 브랜치에서 작업중인 내용입니다
네이밍규칙
-
xero_commerce_xxx
의 형식에서xero_commerce__xxx
형식으로 언더바_
를 하나 더 추가하여 phpmyadmin에서 그룹핑 될 수 있게 변경 -
테이블이름을 복수형으로 변경 (두 테이블간 관계를 명시하는 테이블의 경우 단수형으로 표시) 예시) 일반테이블:
users
,shops
관계:shop_user
배송용어정리 (국내,해외 오픈소스에서 주로 사용하는 용어로 변경)
- DeliveryCompany -> Carrier
- ShopDelivery -> ShopCarrier
- UserDelivery -> UserAddress
- OrderDelivery -> OrderShipment
변경이 될거라면, 하위 호환을 위해서 테이블을 새로 만들고 데이터 마이그레이션을 하는게 좋을 것 같습니다.
의견 주신사항을 볼 때 업데이트과정에서 심하게 오류가 발생할 것 같지는 않습니다만, 외부 프로그램을 추가해서 연계하는 경우 갑작스럽게 발생하는 오류가 심각한 문제를 발생시킬 것 같습니다.
업데이트 버전은 2.0.0 으로 업데이트하고 하위 호환 안됨을 명시하면 좋을 것 같습니다. xero_commerce를 이용해서 또다른 확장 프로그램 제작해서 사용하시는 분들은 커뮤니티 참여하여 문제를 해결할 수 있도록 하면 될 것 같네요.
Double-underscore ( 언더바언더바, '__' ) 형식은 사용해보지 않아서 의견 결정 하는게 쉽지는 않네요. 가독성 및 관리 목적으로 새로운 표준을 만들어 본다는 xero_commerce 자체 스팩으로 보고 진행하겠습니다.
@akasima 네네 버전을 2.0으로 하여 호환 안됨을 명시하는건 생각하고 있었습니다. 현재 버전을 실제로 비즈니스에서 활용하는 경우가 많지 않을것 같아서 (기능이 많이 없다보니...) 아직 베타버전이다 생각하고 작업했습니다.