나 자신을 위해 음식 요리법을 저장하는 Java 프로그램을 작성하려고합니다. 이 프로그램은 데이터베이스에 저장된 요리법을 저장, 검색 및 변경할 수 있어야합니다. 현재 익숙한 Access 2003을 사용하고 있지만 나중에 MySQL을 사용할 것입니다.새내기 데이터베이스 : 한 테이블에 대해 동일한 외래 키가 있습니까?
여기에 문제가 발생할 가능성이 매우 높지만 내 문제는 논리적 모델을 구현하는 것입니다.이 문제를 해결하는 방법이나이를 수행하는 더 좋은 방법이 있는지 알고 싶습니다.
다음은 구체적인 예입니다. '당근'과 같은 데이터베이스에 재료를 저장하고 싶습니다. 그러나 많은 항목에 대체 이름이 있습니다. 특히 영어가 아니기 때문에 특히 그렇습니다. 당근은 당근은 영어입니다. 당근은 제 언어로 "Morot"입니다. 어쩌면 나중에 제이미 올리버 (Jamie Oliver)의 쇼를보고 그는 "shapdoodles"같은 무언가를 당근이라 부릅니다.
이유는 내가이 세 가지 요리법을 추가하고 나중에 "당근"에 검색을 추가하기 때문에, 나는 물론 당근뿐만 아니라 morot 및 shapdoodles 관련된 요리법을 나열하는 프로그램을 원하기 때문에 , 그들은 또한 당근, 단지 다른 이름입니다!
아주 간단하게 들리지만, 처음에는 하나의 텍스트 필드로 "성분"표를 갖는 것이 쉽지 않다고 생각했습니다. 텍스트는 기본 키가되며 "당근"또는 "shapdoodle"과 같은 성분 이름을 저장합니다. 이 테이블은 "Ingredientlist"테이블과 연결되고 Ingredientlist는 "RecipeDescription"등으로 연결됩니다.
두 개의 텍스트 필드, 이름 및 대체 이름이있는 다른 테이블을 추가하고 Ingredient의 텍스트 필드를이 두 텍스트 필드 모두에 외래 키로 만들고이 두 텍스트 필드를 함께 사용하면 테이블의 기본 키가됩니다. 나는 좀 결과 이런 종류의 생각 : 그래서 때 나중에 나는 단순히 관련이 테이블에서 모든 것을 찾기 위해 쿼리를 보낼 수 ... 등등
AlernateIngredientTable:
carrot shapdoodle
carrot morot
그리고 "당근"과에 거기에서에 당근 또는 shapdoodles 또는 morot와 관련된 조리법을 찾으십시오.
음, 테이블의 두 필드에 동일한 외래 키를 추가 할 수 없기 때문에 나는 잃어 버렸습니다!
은 로캘 대신 엔티티와 연결되어야하는 이름을 결정하는 다른 "컨텍스트"를 가질 수있는 지역화 솔루션을 찾는 것처럼 보입니다. 이 도움이 될 수도 있습니다 : http://stackoverflow.com/questions/316780/schema-for-a-multilanguage-database – marko