현지화 된 데이터 저장을위한 좋은 데이터베이스 테이블 디자인 [폐쇄
-
02-07-2019 - |
문제
나는 일부 데이터를 저장하기 위해 일부 테이블을 디자인하려고 노력하고 있습니다. 나중에 다른 언어로 변환해야합니다. 누구든지 이에 대한 "모범 사례"또는 지침을 제공 할 수 있습니까?
감사
해결책
다음과 같은 것처럼 보이는 제품 테이블이 있다고 가정 해 봅시다.
Products
----------
id
price
Products_Translations
----------------------
product_id
locale
name
description
그런 다음 Product_id = product.id에 가입하고 Locale = 'en-us'에 가입합니다.
물론 이것은 성능에 영향을 미칩니다. 이제 이름과 설명을 얻으려면 가입이 필요하지만 나중에 많은 로케일을 허용합니다.
다른 팁
나는 당신이하는 일에 대한 더 많은 정보가 도움이 될 것이라고 믿습니다. 데이터 샘플을 줄 수 있습니까? 그리고 동적이라는 것은 무엇을 의미합니까? 시간이 지남에 따라 많은 데이터가 삽입되고 데이터가 많이 변경되거나 데이터를 적은 시간 동안 만 사용할 수 있어야합니다.
일반적으로 공통 비 국적 데이터가있는 부모와 현지화 된 데이터 및 언어 키가있는 자식 테이블을 살펴보아야합니다. 동적으로 자주 변한다는 것을 의미한다면, 트리거와 '번역 된'플래그와 같은 것을 살펴보고 변경이 이루어진 후 번역에 필요한 것을 표시 할 수 있습니다.
'동적 데이터'의 특성을 설명 할 수 있습니까?
이것을 구현하는 한 가지 방법은 3 개의 다른 테이블을 갖는 것입니다.
- 언어 테이블
- 이 테이블은 언어와 열쇠를 저장합니다.
[1, English], [2, Spanish]
- 데이터 정의 테이블
- 동적 데이터가 처음 입력되면이 테이블에서 데이터를 식별하고 데이터를 식별합니다.
[1, 'Data1'], [2, 'Data2']
- data_language 테이블
- 이 표는 언어, 데이터 정의 및 번역을 연결합니다.
So: [Data_Language, Data_Definition, Language, Translation] [1, 1, 1, 'Red'] [2, 1, 2, 'Rojo'] [3, 2, 1, 'Green'] [4, 2, 2, 'Verde'] etc ...
동적 데이터가 입력되면 기본 '영어'레코드를 작성한 다음 여가에서 번역하십시오.
제휴하지 않습니다 StackOverflow