У меня есть система, которая имеет двух типов пользователей (компаний и частных лиц). Все типы имеют общий набор свойств, но они отличаются друг от друга. Какая наилучшая конструкция объединяет все в одной таблице, которая допускает null для непревзойденных свойств или разделяет их в двух таблицах, связанных с базовой таблицей с отношением один к одному. Спасибо.Дизайн базы данных
ответ
Производительность, это вопрос компромисса.
Для выбора свойств из другой таблицы потребуется дополнительно JOIN
(что плохо для производительности), но сохраняет основную таблицу меньше (что хорошо для производительности).
JOIN
- довольно дорогостоящая операция, поэтому, если у вас нет, например, 200
этих свойств (что значительно увеличит таблицу), лучше держать их в одном столе.
Разделение таблиц, однако, сделает ваши CHECK
и NOT NULL
ограничения более простыми.
Для лучшей производительности используйте одну таблицу для обоих, разрешите нули для разных свойств и добавьте атрибут типа.
Одностороннее отношение (эквивалентное подклассу в мире OO) сделает вашу схему более удобной и понятной, но включает в себя хитовую производительность. Выберите свою таблетку.
- 1. динамический дизайн базы данных?
- 2. Дизайн базы данных daypart
- 3. Зашифрованный дизайн базы данных
- 4. Расписание - дизайн базы данных
- 5. Дизайн базы данных?
- 6. Дизайн базы данных
- 7. Дизайн многоязычной базы данных
- 8. Дизайн базы данных Связанный
- 9. Сложный дизайн базы данных
- 10. Дизайн схемы базы данных
- 11. Дизайн базы данных анкеты?
- 12. Дизайн таблицы базы данных
- 13. Дизайн базы данных
- 14. базы данных дизайн
- 15. Дизайн базы данных DynamoDb
- 16. Дизайн базы данных
- 17. Неструктурированный дизайн базы данных
- 18. Дизайн базы данных
- 19. Дизайн базы данных Django
- 20. Дизайн SQL базы данных
- 21. Дизайн базы данных инвентаря
- 22. Дизайн базы данных (DDL)
- 23. Дизайн/отношения базы данных
- 24. Дизайн эксклюзивной базы данных
- 25. базы данных дизайн класса
- 26. Таблица базы данных Дизайн
- 27. Дизайн базы данных Django
- 28. Дизайн базы данных Mongodb
- 29. Дизайн базы данных
- 30. Дизайн таблицы базы данных
Создайте базовую таблицу с общими свойствами и ссылку на две отдельные таблицы с уникальными свойствами. Это будет следовать процессу нормализации, который я считаю. – Lazarus
Каково количество разных полей? – DForck42