2012-05-21 3 views
0

Я хотел бы создать веб-сайт о университетах. Моя проблема заключается в том, чтобы найти эффективный способ хранения отделов и университетов в таблицах. Например, Университет Кока имеет кафедры «Компьютерная инженерия», «Бизнес-администрирование», «Экономика». Но в университете Сабанчи также есть компьютерная инженерия и экономика в своих отделах. Я думал, что у меня есть таблица с идентификаторами университета и отдела, но я не уверен, что это лучшая идея. У тебя есть идеи?Как эффективно хранить университеты и отделы в базе данных?

ответ

1

Скорее всего, вы захотите провести различие между отделами в каждом университете. Так, например, экономический факультет Кока отличается от экономического факультета в Сабанчи. Для этого вам нужны две таблицы:

+-------------------- 
| University  | 
+-------------------+ 
| UniversityId  | 
| Name    | 
+-------------------+ 

+-------------------+ 
| Department  | 
+-------------------+ 
| DepartmentId  | 
| Name    | 
| UniversityId  | 
+-------------------+ 

Если вам нужно только ссылаться на тип отдел для каждого университета без каких-либо дополнительных данных о depoartment, то есть, вы только хотите знать, что оба Сабанчи и Коч имеют экономические факультеты и ничего в противном случае вы все равно можете использовать эту функцию:

+-------------------- 
| University  | 
+-------------------+ 
| UniversityId  | 
| Name    | 
+-------------------+ 

+-------------------+ 
| Department  | 
+-------------------+ 
| DepartmentId  | 
| Name    | 
+-------------------+ 

+-------------------+ 
| UniDept   | 
+-------------------+ 
| UniversityId  | 
| DepartmentId  | 
+-------------------+ 
+0

Да, не будет никакой разницы между экономикой koc и экономикой sabanci. Но я думаю, что я собираюсь использовать множество записей с дизайном, так что почти 100 университетов имеют экономику, компьютер, бизнес, а это значит, что из этого будет 300 записей. Это хорошее решение? – CanCeylan

+1

На самом деле нет хорошего дизайна, который будет иметь меньше записей, чем количество уникальных отделов, а также количество университетов. Первое решение будет иметь меньше общих записей, но вы потеряете возможность задать вопрос: в каких университетах есть отделы бизнес-администрирования (потому что у них могут быть разные имена, такие как коммерция или бизнес-исследования). Если вы принимаете конструктивное ограничение, которое обычно считается плохим дизайном для хранения информации в таблице моста, такой как UniDept, то вы не можете хранить информацию о конкретном отделе, таком как количество студентов и т. Д. –

0

Если же отдел может быть связан с различными университетами, я хотел бы сделать это:
Таблица университетов, Средний стол UniID, DeptID, таблица Отделы

Но если один отдел специфичен только один университет, удалить середину таблицу и добавьте UniID в отделения.

Смежные вопросы