Я хотел бы создать веб-сайт о университетах. Моя проблема заключается в том, чтобы найти эффективный способ хранения отделов и университетов в таблицах. Например, Университет Кока имеет кафедры «Компьютерная инженерия», «Бизнес-администрирование», «Экономика». Но в университете Сабанчи также есть компьютерная инженерия и экономика в своих отделах. Я думал, что у меня есть таблица с идентификаторами университета и отдела, но я не уверен, что это лучшая идея. У тебя есть идеи?Как эффективно хранить университеты и отделы в базе данных?
ответ
Скорее всего, вы захотите провести различие между отделами в каждом университете. Так, например, экономический факультет Кока отличается от экономического факультета в Сабанчи. Для этого вам нужны две таблицы:
+--------------------
| University |
+-------------------+
| UniversityId |
| Name |
+-------------------+
+-------------------+
| Department |
+-------------------+
| DepartmentId |
| Name |
| UniversityId |
+-------------------+
Если вам нужно только ссылаться на тип отдел для каждого университета без каких-либо дополнительных данных о depoartment, то есть, вы только хотите знать, что оба Сабанчи и Коч имеют экономические факультеты и ничего в противном случае вы все равно можете использовать эту функцию:
+--------------------
| University |
+-------------------+
| UniversityId |
| Name |
+-------------------+
+-------------------+
| Department |
+-------------------+
| DepartmentId |
| Name |
+-------------------+
+-------------------+
| UniDept |
+-------------------+
| UniversityId |
| DepartmentId |
+-------------------+
Если же отдел может быть связан с различными университетами, я хотел бы сделать это:
Таблица университетов, Средний стол UniID, DeptID, таблица Отделы
Но если один отдел специфичен только один университет, удалить середину таблицу и добавьте UniID в отделения.
- 1. Хранить время эффективно в базе данных Firebase?
- 2. Эффективно записывать и хранить количество просмотров страниц в базе данных?
- 3. Как эффективно хранить графики в базе данных SQL (например, mysql)?
- 4. Как эффективно хранить много данных в БД?
- 5. Как эффективно записывать ввод данных с помощью javascript и хранить в базе данных?
- 6. Как эффективно и легко хранить объекты данных в базе данных из приложения ООП?
- 7. Хранение рекордов в базе данных эффективно
- 8. Хранить и извлекать пароль в базе данных
- 9. Разработка баз данных; Как эффективно хранить недели?
- 10. Хранить перечисление в базе данных
- 11. Как эффективно хранить диапазон IP-адресов (зарезервированных и бесплатных) в базе данных
- 12. Хранить перевод в базе данных?
- 13. как читать блоки данных и хранить их в базе данных?
- 14. Хранить дерево в базе данных
- 15. Как эффективно хранить растровые изображения в Android?
- 16. Как эффективно хранить и запрашивать миллиарды строк данных датчика
- 17. Как эффективно создавать и хранить семантический граф?
- 18. Как хранить пользовательский ввод в базе данных?
- 19. Как хранить данные auth в базе данных
- 20. Как хранить досье в базе данных
- 21. Как хранить данные графа в базе данных?
- 22. Как хранить HTML-теги в базе данных?
- 23. Как хранить объекты TimeZoneInfo в базе данных?
- 24. Как хранить измененные данные в базе данных?
- 25. Как хранить многозначные атрибуты в базе данных?
- 26. Как хранить LONGTEXT в базе данных MySql
- 27. Как безопасно хранить пароли в базе данных?
- 28. Как хранить тривиальные данные в базе данных?
- 29. Как хранить аудиофайлы в базе данных mysql
- 30. Как хранить статистику в базе данных
Да, не будет никакой разницы между экономикой koc и экономикой sabanci. Но я думаю, что я собираюсь использовать множество записей с дизайном, так что почти 100 университетов имеют экономику, компьютер, бизнес, а это значит, что из этого будет 300 записей. Это хорошее решение? – CanCeylan
На самом деле нет хорошего дизайна, который будет иметь меньше записей, чем количество уникальных отделов, а также количество университетов. Первое решение будет иметь меньше общих записей, но вы потеряете возможность задать вопрос: в каких университетах есть отделы бизнес-администрирования (потому что у них могут быть разные имена, такие как коммерция или бизнес-исследования). Если вы принимаете конструктивное ограничение, которое обычно считается плохим дизайном для хранения информации в таблице моста, такой как UniDept, то вы не можете хранить информацию о конкретном отделе, таком как количество студентов и т. Д. –