|
|
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
БД: mysql 5.x Задача: создать БД инвенторизации серверов. На данный момент данные хранятся в excel. Пример: Вся информация о конфигурации сервера привязывается к определенному хосту, так как мы понимаем сервер может буть как физическим так и виртуальным. В начале собирается информация о хосте: тип, имя, статус и т.д порядка 10 полей. Далее собираются данные о конфигурации железа на этом хосте: вендор, модель, серийный номер и т.д порядка 20 полей. Далее собирается информация о физическом расположении: номер кабинета, номер ячейки и т.д. порядка 10 полей. Далее об операционной системе: название, версия, временная зона и т.д порядка 10 полей. О сервисной консоли и серийной консоли, порядка 10 полей. И наконец информация, как органозованы зеркалирование, виртуальные менеджеры разделов диска и т.д. еще порядка 10 полей. В принципе общее число полей пока составляет 60. Читабильность такой таблицы по моему довольна затруднена и не удобна. По моему с точки зрения производительности не совсем хорошо, если такие таблицы будут иметь место в БД. Вопрос: Как правильно проектировать такого типа БД, так как такая же ситуация с индивидуалами о которых тоже собирается информация: домашний, рабочий, адрес по прописке, адрес физического нахождения и т.д. Наши админы БД говорят все держать в одной таблице, но у меня желание логически разнести часть данных по разным таблицам и привязать их по ID к хосту. Так как виртуальные хосты например не имеют информации о физическом расположении, о конфигурации железа, сервис консоли. Пример: host ------------ host_id host_name ... hardware ------------ hardware_id host_id vendor model ... location ------------ location_id host_id cabinetid rac_size ... Что посоветуют специалисты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2008, 00:04 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
Почитать книжки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 08:58 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
Не надо книжек - потом и в своём примере не разберёшься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 12:16 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы, очень помогли :) Меня больше интересует, хорошо или нет в таблицах держать пустые поля. Так как, если следовать советам моих админов, то дыры в таблице будут. Если следовать моему варианту, то все будет кашерно, но я не знаю правильно ли это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 17:54 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
STEвсе держать в одной таблице, но у меня желание логически разнести часть данных по разным таблицамЯ бы сделал нечто среднее (картинка). Таким образоам у вас была бы одна основная таблица (админы правы) SupportingTableTypeTable(-Strings) где хранились бы все данные без "дырок" и дополнительные таблицы для ваших host, hardware, location (т.к. они тоже нужны, притом нужны именно отдельные - Вы правы). Работать естественно (если данные предпологается держать на MSSQL) только с представлениями, и данные добавлять через instead of триггеры. Скрипт для таблиц (просто как пример, представления и триггеры, надеюсь, сами понимаете как делать): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 18:31 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
Спасибо Бык, за ответ. Твой вариант мне показался немного запутанным, немного непонятным (видимо я так изложил свой вопрос), но смотрится несомненно круто :) Спасибо еще раз, если будет время, я постараусь приатачить свою картинку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 19:02 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
сказанное выше перевожу на Русский - обломись, чувак ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 22:19 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
та нее - я ш па добраму... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 09:23 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
STEСпасибо Бык, за ответ. Твой вариант мне показался немного запутанным, немного непонятным (видимо я так изложил свой вопрос), но смотрится несомненно круто :) БД с шестью таблицами НЕ БЫВАЕТ. Одна-две максимум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 14:30 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
Виноват. Вместо двух правых - сделаю одну, а вместо левых буду использовать запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 15:28 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
Не знакомый с основами проектиро БД с шестью таблицами НЕ БЫВАЕТ. Одна-две максимум. Нічего не понял. Еслі у меня в базе 11 -15 табліц і 50 вьюх, то я что-то делаю не так??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2008, 02:46 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
11-15 - это очень большая база... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2008, 09:34 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
2 автор и охота тебе возится ??? есть ПО которое само собирает все данные о сети и затем делает отчет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2008, 09:43 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
бухой бык 11-15 - это очень большая база... А там ещё и строк по 150к в таблице! УЖОСНАХ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2008, 03:09 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
Срочно делить на несколько баз! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2008, 09:18 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
автор11-15 - это очень большая база... Это типо прикол, да? А если в базе порядка 500 таблиц и некоторые по несколько гиг, то это какая база? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2008, 15:38 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
То это база занимает несколько терабайтов. Ф топку такую базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2008, 15:51 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
бухой быкТо это база занимает несколько терабайтов. Ф топку такую базу. :) Если всю БД нельзя запомнить за один раз, она слишком большая для "слива" конкурентам, следовательно, никому не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2008, 15:59 |
|
||
|
Основы проектирования БД
|
|||
|---|---|---|---|
|
#18+
Автору по сути топика: Судя по всему база создается для внутреннего пользования. А если так, то создавайте так как лично вам как разработчику удобнее. Не охота возиться с нормализацией -- и не надо! ну и пусть все лежит в одной плоской таблице. Будут "дыры" в некоторых полях, ну и что? Кому они мешают эти "дыры"? Скорей всего вряд ли в средней компании наберется больше сотни, ну пусть тысячи серверов, а следовательно вопрос производительности на таких объемах не стоит. В общем какой бы вариант не выбрали -- это будет лучше, чем хранить данные в Excel'e. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2008, 16:09 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=108&tid=1544062]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
| others: | 212ms |
| total: | 372ms |

| 0 / 0 |
