У мене виникають труднощі з розумінням того, як саме розмістити хороші межі для того, коли і де використовувати таблиці пошуку в базі даних. Більшість джерел, на які я звернувся, говорять про те, що я ніколи не можу мати занадто багато, але, в якийсь момент, здається, що база даних буде розбита на стільки частин, що, хоча це може бути ефективною, вона вже не керується. Ось спільний приклад того, з чим я працюю:
Скажімо, у мене є таблиця під назвою Співробітники:
ID LName FName Gender Position
1 Doe John Male Manager
2 Doe Jane Female Sales
3 Smith John Male Sales
Прикиньте на мить, що дані складніші і містять сотні рядків. Найбільш очевидно, що я бачу, що це може бути переміщено до таблиці пошуку, це позиція. Я міг би створити таблицю під назвою "Позиції" і вставити зовнішні ключі з таблиці "Позиції" в таблицю "Співробітники" в стовпці "Позиція".
ID Position
1 Manager
2 Sales
Але як далеко я можу продовжувати розбивати інформацію на менші таблиці пошуку, перш ніж вона стане некерованою? Я можу створити гендерну таблицю і мати окрему таблицю пошуку 1, що відповідає чоловікові, і 2 для жінки. Я навіть міг помістити LNames та FNames у таблиці. Усі записи "Джон" замінюються зовнішнім ключем 1, який вказує на таблицю FName, в якій зазначено, що ІД відповідає 1. Якщо ви опуститеся в цю кролячу нору занадто далеко, як це, то ваш стіл працівників потім зменшується до безладу сторонніх ключів:
ID LName FName Gender Position
1 1 1 1 1
2 1 2 2 2
3 2 1 1 2
Хоча це може бути або не бути більш ефективним для обробки сервера, це звичайно не читається для звичайної людини, яка, можливо, намагається підтримувати його і ускладнює розробника програми, який намагається отримати доступ до нього. Отже, моє справжнє запитання - наскільки далеко далеко? Чи є десь "найкращі практики" для подібних речей чи хороший набір інструкцій? Я не можу знайти будь-яку інформацію в Інтернеті, яка б справді привела в дію хороший корисний набір вказівок щодо цього конкретного питання, яке я маю. Дизайн бази даних для мене старий капелюх, але ДОБРИЙ дизайн баз даних є дуже новим, тому надмірно технічні відповіді можуть бути над головою. Будь-яка допомога буде вдячна!