2017-04-10 7 views
0

그래서 직장에서 한 지점에 머물러 있습니다. 이 테이블에 "IP"가 있습니다. 다른 테이블과의 관계가 있습니다. 엔터티의 "실제 이름"을 보려면 쿼리를 만들었습니다. 내 IP 테이블 내 쿼리의LibreOffice 쿼리를 통해 테이블을 편집 할 기본 폼

참조 사진 -> 호스트/호스트 이름

나는 tbl_IP의 항목을 편집 할 양식을 만들려고합니다. 이 양식에서 내가보고있는 IP를보기 위해 호스트의 관련 이름을 표시하려고합니다.

하지만이 쿼리를 기반으로 양식을 만들면 정보를 볼 수는 있지만 편집 할 수는 없습니다.

나는 쿼리가 다른 테이블과의 관계가 있음을 알게되었다고 생각한다. 하지만이 시점에서 나는 충분히 경험하지 못했습니다.

다른 사람이 어떻게하는지 설명 할 수 있습니까?

미리 감사드립니다.

답변

0

예를 들어 천 단어의 가치가 있다고 생각합니다. 이 example을 다운로드하면 원하는 내용을 얻을 수 있습니다.

enter image description here

당신은 그것의 나머지는 내가 생각 구축 방식을 볼 수 찌를 수있는이

enter image description here

사용합니다.

테이블 컨트롤을 삽입 한 후 Host IDPort ID을 숫자 필드에서 목록 상자 필드로 변경하려면 필드를 마우스 오른쪽 단추로 클릭해야합니다.

(단 하나의 필드에서만 작동하며 ID와 해당 ID에 대한 사람이 읽을 수있는 참조라는 두 개의 필드가 필요하므로 콤보 상자는 LO에서 사용할 수 없습니다.) Access에서는 콤보 또는 목록 상자가 작동합니다.)

의도적으로 Hosts 조회가 쿼리를 사용하고 포트 조회가 SLQ를 사용하므로 풀다운 목록을 가져 오는 두 가지 가장 일반적인 방법을 볼 수 있습니다.

때로는 SQL이 더 좋으며 때로는 쿼리가 당신이하는 일에 따라 더 좋습니다. 표가 배치 된 경우 테이블을 풀다운에 직접 사용할 수 있습니다 (예 : field1 = 표시된 텍스트 또는 값, field2 = ID 키). 그러나 원칙적으로 키 ID를 모든 테이블의 첫 번째 필드로 유지하기 때문에이 방법을 사용하지 마십시오.

또한 내부 조인이 아닌 왼쪽 또는 오른쪽 조인을 사용하여 테이블을 관련 시켰습니다. 나는 내부 조인을 거의 사용하지 않습니다. 왜냐하면 누락 된 데이터를 선호하는 빈 컨테이너로 표시하는 대신 누락 된 경우 두 테이블의 레코드를 숨길 수 있기 때문입니다.


다른 내가 고려해야 바랍니다 수년에 걸쳐 작업 한 일반적인 디자인 팁 부탁받지 :

  • 을 나는 단수에서 복수의 테이블 및 기록을 명명 찾아 조심스럽게 이걸 지키면 가장 의미가 있습니다. IPs 테이블 (여러 IP 레코드 포함) 및 IP ID은 특정 레코드를 나타내거나 가리키는 정수입니다. 때때로 Data와 같은 단어는 's'가없는 복수형이므로 레코드의 경우 Datum을 사용하고 테이블의 경우 Data를 사용합니다.

  • 포인터와 대상을 정확히 지정하는 것이 가장 유용합니다. 특히 데이터베이스가 커지고 어떤 점을 가리키는 지 혼란 스럽습니다. 두 개의 이름을 동일하게 유지하는 것이 더 간단합니다. 즉, 기본 테이블에서 Host ID이라는 필드를 사용하면 조회 테이블의 Host ID 필드를 가리 킵니다. (다른 사람들은 이것을 외래 키 조회라고 부르지 만 그 이름이 도움이되지는 않는다.)

  • 그리고 항상 'ID'가 붙은 테이블 이름 자체를 사용하여 기본 키 이름을 지정합니다. 다른 단어 나 문자열은 사용하지 않습니다. 그렇게하면 ID를 볼 때 어떤 테이블인지 알 수 있습니다. 예를 들어, 테이블의 이름이 Hosts 인 경우 기본 키는 항상 Host ID (Hosts ID이 아니기 때문에 복수형이 될 수 있습니다. 실제로 ID는 모든 레코드가 아닌 하나의 레코드만을 참조합니다). 예를 들어, IP ID 또는 IP_ID 두 사람 모두 잘 작동하는 것을 좋아합니다. 과 같이 여러 단어로 더 복잡한 이름을 사용할 수 있으므로 IP ID (공백 포함)은 읽고 쉽게 입력 할 수 있습니다. 공간은 밑줄 문자보다 쉽게 ​​입력 할 수 있습니다. 그러나 이것은 당신이 모든 식별자를 인용해야한다는 것을 전제로 합니다만, 나는 항상 그렇지만 반드시 필요한 것은 아닙니다. 나는 이와 같은 몇 가지 기본 규칙에 엄격한 적합성을 좋아한다.

희망이 도움이 될 것입니다.

+0

이것은 나에게 좋은 것으로 보입니다. 하지만 이것에 대한 또 하나의 기능이 필요합니다 ... IP를 나열하기 전에 특정 호스트 이름을 검색 할 수있는 방법이 있습니까? 그래서 저는 그 특정 호스트의 IP를 봅니다. 특정 이름 (LIKE '%'|| : 호스트 이름 || '%')에 대한 쿼리 검색을 허용 할 수 있다는 것을 알고 있지만 귀하의 양식과 같은 기능을 사용할 수 없습니다. –

+0

호스트가 결합되는 방식을 변경합니다 (오른쪽/왼쪽으로 전환). 그런 다음 쿼리에서 호스트를 조건으로 지정하십시오. 다른 방법으로 검색 할 수 있지만 다른 질문의 주제입니다. 또한 ask.libreoffice.org를 보도록 제안하십시오. –

+0

쿼리에서 검색을 허용해야합니까, 아니면 더 쉬울 수있는 다른 방법이 있습니까? –