저는 SQL과 데이터베이스에 대한 지식이 거의 없으므로 (최소한의 사이트에 대해서만 아주 단순하게 설계되었습니다) DB를 많이 사용하는 사이트의 경우 일부 모델을 설계하는 최선의 방법을 찾기 위해 노력하고 있습니다. 예를 들어 사용자가 업로드 한 갤러리를 예로 들어 보겠습니다. 나는 업로드 된 날짜, 이름 등과 같은 합리적인 기둥이있는 갤러리 테이블을 가지고 있으며 갤러리는 하나의 카테고리에 속할 수 있습니다. 그 중 많은 카테고리는 6 개 정도입니다. 카테고리를 갤러리 테이블의 열로 설정해야합니까? 또는 카테고리에 대한 별도의 테이블을 가지며 카테고리와 갤러리 테이블간에 다 대일 관계가 있습니까? 내가 업로드 한 날짜별로 범주의 모든 갤러리를 정렬하는 것과 같은 내 견해에서 일을하고 싶습니다, 거기에 성능/편의점 차이가 무엇입니까? 카테고리가 Gallery 테이블의 열이되도록하면 나보다 다루기가 더 쉽지만 가장 좋은 방법은 무엇인지 확실하지 않습니다. 감사.SQL 데이터베이스 - 별도의 테이블을 사용할 때와 기존 테이블을 사용할 경우?
3
A
답변
1
우선, 개념상의 차이점을 이해해야합니다. 엄지 손가락의 규칙으로
다음과 같은 동등한 고려하는 것이 안전하다 :표 ~~~ 엔티티를
열 ~~~ 특성
그래서, 당신이 필요로 할 때 엔티티 (기존 테이블)와 관련하여 새로운 데이터를 추가하려면 다음과 같이 질문하십시오.
이 데이터 조각은 엔터티의 속성입니까?
대답이 '예'인 경우 새 열이 필요합니다.
Table Student:
[PK] Id
[FK] IdClass
Name
Surname
당신은 또한 각 학생의 GPA를 추가 할 말 : 예를 들어
, 당신은 학생 엔티티를 설명하는 테이블이 말한다. 이것은 분명히 학생의 속성이므로 Student 테이블에 GPA 열을 추가 할 수 있습니다.
각 학생에 대해 부서를 정의하려는 경우 부서는 학생의 속성이이 아닙니다. 부서는 엔티티이며, 존재하며 자체 특성을 가지고 있습니다. 외부 학생의 범위.
따라서 학생의 속성은 특정 부서와의 제휴이지만 부서 자체와는 관련이 없습니다.
따라서 새 Department 테이블을 만들고 Students 테이블에서 Department.Id
을 FK로 사용합니다.
이 정보가 도움이되기를 바랍니다. 건배.
1
의심 스럽다면 별도의 테이블을 사용하십시오.
속도에 큰 영향을주지 않으므로 더 많은 제어권을 얻습니다.
1
카테고리와 갤러리 사이에 일대일 관계가 있다면 카테고리를 별도의 테이블로 지정해야합니다.
관련 문제
- 1. 각 사용자마다 데이터베이스 테이블을 사용할 수 있습니까?
- 2. 나중에 사용할 테이블을 선택하십시오
- 3. 은 SQL 쿼리에 사용할 테이블을 추가해야합니다.
- 4. Propel을 사용할 때 기존 테이블을 무시할 수 있습니까?
- 5. 테이블을 만들 때 기존 테이블의 열 유형을 사용할 수 있습니까?
- 6. Django 프로그램없이 기존 테이블을 변경하십시오
- 7. 별도의 SQLiteOpenHelper 클래스로 기존 데이터베이스에 새 테이블을 만듭니다.
- 8. 기존 데이터베이스 코드에 새 테이블을 추가하는 방법
- 9. 기존 데이터베이스 테이블을 수정하여 버전 관리 추가하기
- 10. SQL Server의 모든 테이블을 별도의 파일로 내보내기
- 11. 데이터베이스 테이블을 만드는 파일
- 12. 사용자가 기존 테이블을 기반으로 테이블을 만들도록합니다.
- 13. 데이터베이스 업그레이드. 테이블을 변경하거나 새로운 테이블을 만들어야합니까?
- 14. wampserver를 재설치 한 후 데이터베이스 테이블을 사용할 수 없음
- 15. C# 테이블을 기존 DataContext 인스턴스
- 16. "데이터베이스"대신 MDF SQL Server 파일을 사용할 경우 성능이 저하됩니까?
- 17. 나는 데이터베이스 테이블을 PHP
- 18. CTE에서 임시 테이블을 사용할 수 있습니까?
- 19. 우리는 언제 외부 테이블을 사용할 수 있습니까?
- 20. MySQL 피벗 테이블을 사용할 때의 동적 AS
- 21. 존재하는 경우 mysql 데이터베이스 테이블을 바꿉니다
- 22. 테이블을 업데이트하는 동적 SQL!
- 23. 재귀 테이블을 사용하는 경우
- 24. EF - DB에서 새 테이블을 가져 와서 기존 테이블을 바꿉니다.
- 25. 동일한 테이블을 쿼리하는 데 사용할 SQL 테이블 열
- 26. pyodbc 코드에서 SQL Server 임시 테이블을 사용할 수 없습니다.
- 27. SQL join을 사용하여 테이블을 외제 키로 사용할 수있는 이유는 무엇입니까?
- 28. 테이블을 생성하기 위해 SQL 문을 사용할 수 없습니다하지만 쿼리
- 29. 프레젠테이션 계층에서 하나의 테이블을 사용할 수 있고 다른 테이블을 사용할 수 없습니다.
- 30. MySql : 임시 테이블을 사용할 때의 문제