한 열의 데이터 열에 여러 직원 ID를 저장합니다
-
09-09-2019 - |
문제
웹 앱은 MSSQL 백엔드와 함께 클래식 ASP로 작성되었습니다. 이 특정 페이지에서 관리자는 프로젝트를 할당 할 직원 1 명 또는 모든 직원을 선택할 수 있습니다. 한 열에 할당 된 사람들의 직원 ID를 저장하는 간단한 방법을 찾으려고 노력하고 있습니다.
직원 목록은 다른 테이블에서 생성되며 동적 (발사 또는 채용) 일 수 있으므로이 테이블 변경에 따라 프로그램이 변경 될 수있을 정도로 유연하게 변경되기를 원합니다.
기본적으로 여러 사람을 다른 페이지 나 다른 쿼리에서 호출 할 수있는 프로젝트에 여러 사람을 할당하는 방법을 알아야합니다.
N00bish 질문에 대해 죄송하지만 감사합니다!
해결책
다음과 같은 값을 저장하는 다른 테이블을 만들어야합니다. 따라서이 새 테이블은 각 ID에 대해 하나의 행을 저장 한 다음 원본 레코드 ID와 함께 원본 레코드에 다시 연결됩니다.
다른 팁
여러 ID를 한 열에 저장하지 마십시오! 기존 테이블의 기본 키와 저장하려는 단일 ID로 다른 테이블을 만듭니다. 그런 다음이 새 테이블에 여러 행을 삽입하여 1 : m (1 ~ 많은) 관계를 만들 수 있습니다. 예를 들어, 주문 테이블을 살펴 보겠습니다.
order:
order_id
order_date
그리고 제품 테이블이 있습니다 ...
product:
product_id
product_name
이제 제품을 순서대로 나열 할 수있는 순서대로 열을 추가하는 길을 따라갈 수 있지만 그 형태는 나쁜 형태입니다. 대신 원하는 것은 ..
order_item:
order_item_id
order_id
product_id
quantity
unit_price
그런 다음 Join을 수행하여 특정 주문에 대한 모든 제품을 얻을 수 있습니다 ...
select
product.*
from orders
inner join order_item on order_item.order_id = order.order_id
inner join product on product.product_id = order_item.product_id
where orders.order_id = 5
다음은 Order_id의 예입니다. 이는 모든 제품을 순서대로 얻을 것입니다.