PHP에서 액세스하는 MySQL에 테이블이 있습니다. 다른 테이블PHP가 설치된 MySQL에서 완전히 임의의 정렬 순서
에 합류하기위한 INT - INT 기본 키things.name - - VARCHAR
things.owner_ID
things.ID : 예를 들어, 테이블 이름 사항을 보자
내 선택 문이 나는 것처럼 보일 수 있습니다 필요한 것을 얻을 :
SELECT * FR OM 것들 어디서 owner_ID = 99;
아주 간단합니다. 이제는 사용자가이 쿼리에서 반환 된 항목에 대해 완전히 임의의 순서를 지정할 수 있기를 바랍니다. 목록이 표시되고 행 옆에있는 "위로"또는 "아래로"버튼을 클릭하여 목록 위 또는 아래로 이동하거나 드래그 앤 드롭 조작으로 다른 곳으로 이동할 수 있습니다. 나는이 주문을 데이터베이스 (동일 테이블 또는 다른 테이블)에 저장하고 싶습니다. 맞춤 주문은 각 owner_ID에 대한 행 집합에 대해 고유합니다.
나는이 주문을 행운없이 제공 할 수있는 방법을 모색했다. 나는이를 구현하지만, 나를 마지막 옵션을 작성하는 데 도움이되는 몇 가지 방법을 생각했습니다
- 가 INT 열을 추가하고 내가 내 순서로 반환 된 행을 얻을 필요가 무엇에 가치의 설정. 이는 행 단위로 검색하여 삽입 지점을 찾고, 앞뒤 행 정렬 열을 번으로 업데이트해야하는 문제를 나타냅니다.
- "다음"및 "이전"열이 있으면 연결된 목록을 구현할 수 있습니다. 내 자리를 찾으면 최대 행을 업데이트하여 행을 삽입해야합니다. 그러나 이것은 행 # 1에서 위치를 검색해야합니다. 이 밖에, 누가 알 수 있기 때문에
- 내가 모르고있어 일부 SQL/관계형 DB 트릭
...나는 # 3에 대한 답을 찾고 있어요. 또한 데이터베이스에서 최대한 많은 작업을 수행하고 싶습니다.
주문을 구현하기 위해 단순히 사물 테이블에 새 열을 포함시키는 것과 다른 점은 무엇입니까? – Steve
여러 사용자가 있고 모든 사용자가 서로 다른 주문을 할 수 있음을 이해했습니다. 따라서 모든 사용자에 대해 새로운 항목이 필요합니다. 이 문제를 극복하려면 두 번째 테이블을 사용하십시오. 두 번째 테이블은'user- -order indentifier'-'item '을 함께 연결합니다 (Aldo가 설명한 것처럼). – apfelbox
사용자 및 항목이 이미 원본 테이블에 연결되어 있습니다. 테이블에서 select를 수행하는 경우 "where user = id order by order_column"을 입력하십시오. 아마도 각 항목이 한 명의 사용자에게만 속하고 사용자는 항목 만 주문할 수 있습니다. – Steve