확인 내가 달성하기 위해 필요한이 문제가 ... 그래서 여기 내 site좋은 데이터베이스 스키마는
내가 뭘해야 할 것은 내가 어느 쪽이다이 개 다른 제품을 가질 필요가 판매 된 각 제품입니다 업그레이드 또는 다운 그레이드.
그래서 거기에 각 제품은 3 종류의 표준, 비즈니스, 프리미엄 및 현재 제품들이 하나 증가 또는 가격 감소 ..
그래서 기본적으로 그들은 각각의 솔루션을 사용자 정의하는 무엇을 기반으로.이있다 그래서 내가 필요한 것은 여기 ...이 내 DB를 구성하는 가장 좋은 방법을 알아낼 내가 지금
$query = "SELECT p.ProductName, p.price, pc.quantity, p.ProductImage, p.Features
FROM productinfo as p
join preconfig_categories as pc on p.ProductID = pc.product_id
join preconfig as c on c.id = pc.category_id
join subcategory as sc on p.SubCategoryID = sc.SubCategoryID
WHERE c.code = '{$type}_{$count}_{$class}'
order by sc.ordering";
나는 현재 구성되어있는 인 ProductInfo 테이블에 생각하고 있었는데
무엇을 당겨하는 데 사용하는 쿼리입니다 이
CREATE TABLE `productinfo` (
`ProductID` int(11) NOT NULL AUTO_INCREMENT,
`ProductName` varchar(255) NOT NULL,
`ProductImage` varchar(255) NOT NULL,
`CategoryID` int(11) NOT NULL,
`SubCategoryID` int(11) NOT NULL,
`ProductBrief` varchar(255) NOT NULL,
`Features` text NOT NULL,
`Specifications` text NOT NULL,
`Reviews` text NOT NULL,
`Price` varchar(255) NOT NULL,
`Status` tinyint(4) NOT NULL,
`PartName` varchar(255) NOT NULL,
`skip_step` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`ProductID`)
) ENGINE=MyISAM AUTO_INCREMENT=164 DEFAULT CHARSET=latin1;
처럼 그래서 기본적으로 내가 현재 제품이 무엇인지 알려 클래스를 사용하고 다른 두 필드는이 제품 1 세 추가 필드
class
product1
product2
를 추가 떨어져 생각했다 다른 제품의 ProductID를 가지고있는 product2 ....이 제품은 작동 할 수있는 것처럼 보입니다. 그러나 더 나은 솔루션이 더 좋을 것 같아요. 조금 더 잘할 수 있습니다. 어떤 아이디어라도 강력하게 평가할 수 있습니다.
Mr. Horgan의 대답에 대한 확장 : ProductClasses 테이블에 Sequence 필드를 두어 제품이 업그레이드인지 다운 그레이드인지 식별 할 수 있습니다. 전체 테이블을 추가하는 것은 추가 작업처럼 보일 수 있지만 추가 필드를 추가하려는 생각은 잘 확장되지 않습니다. Horgan이 지적했듯이 언젠가 네 번째 제품 수준이 거의 확실하게 필요합니다. –
그래서 ProductClasses 테이블을 가지고 있다고 가정 해 봅시다. 어떤 필드가 가장 좋을까요? – Trace
ProductClasses 테이블의 경우 ProductClassName (Standard, Business etc)과 ProductClassId INTEGER NOT NULL을 사용하는 것이 좋습니다. 매핑 테이블에서 ProductClassID, ProductTypeId 및 클라이언트 트랜잭션 ID 또는 클라이언트 ID를 매핑합니다. –