Ik zit al geruime tijd met een bepaald probleem bij het modellen van een rationale database die meerde talen moet ondersteunen.
Stel, men heeft een tabel product en dat product heeft een naam en omschrijving in meerdere talen. Hoe breng je dit best in model?
Tot zo ver ken ik 2 manieren:
1) Een tabel met verschillende kolomen voor de verschillende talen:
2) Een relatie tussen de tabel Product en een tabel Language
Beide methodes heb ik reeds toegepast. Mijn bevindingen:
Methode 1
+ Makkelijk in ontwerp
+ Makkelijk in gebruik (voor het ontwikkelen van de middle tier)
+ Sneller (geen inner joins nodig)
- Slecht flexibiliteit (extra taal toevoegen vraagt extra aanpassing in de DB en de middle tier)
Methode 2
+ Maximum flexibiliteit
- Complexiteit
- Trager (altijd is er een inner join nodig)
Wat is volgens jullie de beste methode?
Misschien kennen jullie nog beter manieren?
Welke methode zou je kiezen bij het ontwikkelen van een groot/klein systeem en waarom?
Stel, men heeft een tabel product en dat product heeft een naam en omschrijving in meerdere talen. Hoe breng je dit best in model?
Tot zo ver ken ik 2 manieren:
1) Een tabel met verschillende kolomen voor de verschillende talen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| +--------------------+
| Product |
|--------------------|
| + ID |
| - NameNL |
| - NameFR |
| - NameEN |
| - DescNL |
| - DescFR |
| - DescEN |
| - ... |
+--------------------+
(+ = primary key) |
2) Een relatie tussen de tabel Product en een tabel Language
code:
1
2
3
4
5
6
7
8
9
10
| +--------------------+ +--------------------+ +--------------------+
| Product | | P_L | | Language |
|--------------------| |--------------------| |--------------------|
| + ProductID | | + ProductID | | + LanguageID |
| - Price | | + LanguageID | | - LanguageName |
+--------------------+ | - Name | +--------------------+
| - Description |
| - ... |
+--------------------+
(+ = primary key) |
Beide methodes heb ik reeds toegepast. Mijn bevindingen:
Methode 1
+ Makkelijk in ontwerp
+ Makkelijk in gebruik (voor het ontwikkelen van de middle tier)
+ Sneller (geen inner joins nodig)
- Slecht flexibiliteit (extra taal toevoegen vraagt extra aanpassing in de DB en de middle tier)
Methode 2
+ Maximum flexibiliteit
- Complexiteit
- Trager (altijd is er een inner join nodig)
Wat is volgens jullie de beste methode?
Misschien kennen jullie nog beter manieren?
Welke methode zou je kiezen bij het ontwikkelen van een groot/klein systeem en waarom?
[ Voor 4% gewijzigd door Antediluvian op 03-09-2004 12:41 ]