사용자 프로필을 만들고 있습니다. 모든 필드는 좋아하는 영화, 좋아하는 음악, 좋아하는 음식, 스포츠 등 자신의 테이블을 기반으로 조회됩니다 ... 이들은 텍스트 필드가 아니지만 자동 시스템 유지 목록에서 필드를 제안합니다. 이것들이 모두 자신의 식탁에있는 이유는 그들 만의 고유 한 색을 가지고 있기 때문입니다.20 개의 테이블을 결합하여 데이터 쓰기/읽기를위한 다른 옵션을 제외하고는?
사용자 입력시 데이터를 읽으려면 괜찮습니다.하지만 그 후에는 두 가지 문제가 있습니다.
1) 데이터 쓰기 : M : M 관계이므로 20 개의 테이블이 필요합니까?
2) 프로필로드 시간에 데이터 읽기 : 사용자 데이터를 얻기 위해이 20 개의 테이블을 모두 조인해야합니까?
다른 모든 옵션은 이러한 모든 사용자 정보를 저장해야합니까? 이 사이트는 소셜 사이트이므로 나의 유일한 관심사는 실적입니다. 20 개의 조인은 좋지 않습니다. 그러나 나는 다른 기술에 대해 확신하지 못합니다. 나는 mysql과 PHP를 사용하고있다.
내가 생각할 수있는 유일한 다른 옵션은 데이터베이스에서 배열에 데이터를 저장하는 것입니다. 검색이 얼마나 잘 수행되는지는 잘 모릅니다.
(그게 가능 모르겠어요하지만) : M, 자신의 테이블에있는 각 지금 ID와 이름이 있습니다. 좋아, (fav_brands, fav_places, fav_food, fav_drinks, fav_movies, fav_music, fav_sportteams, fav_sports, fav_activities, ...) 다음 user_brands, user_place, user_food 등 .. 4 개의 열이있는 사용자 정보를 보유 테이블 : user_id, created_dt, updated_dt. 생각으로 나는 '이름'도 추가 할 생각이기 때문에 텍스트 설명도 아이템의 테이블에있다. 그래서 나는 그것을 쿼리 할 필요가 없다. – SuriP
@ SuuriP : 완벽하게 의미있는 스키마입니다. 문제가 있습니까? 관계형 데이터베이스는 사실상 즉시 데이터를 제공하는 데 문제가 없어야합니다. –
아니지만 그물에 본 샘플 스키마는 빠른로드를 위해 1 개의 테이블에 모든 사용자 정보를 덤프하려고합니다. 나는 그것이 현실 세계에서 작동하는 방식이 아니라면 프로파일 세부 사항을 위해 20 개의 테이블을 사용하고 싶지 않습니다. – SuriP