Мне нужно разработать базу данных для системы, где есть Клиентов и Продавцов но оба они связаны с организацией под названием Пользователей, где каждый пользователь либо клиент или поставщик. проблема заключается в том, что Поставщики связаны с другими объектами, которые Клиенты не являются. так как я могу создать такую базу данных?Обобщения в базе данных
ответ
Другие объекты будут хранить идентификатор поставщика в качестве внешнего ключа. И продавцы и клиенты не будут находиться в одной таблице в любом случае *, так что это не так, как у двух есть идентификаторы, которые могут быть использованы одновременно.
Кроме того, для добавления внешнего ключа, который требуется для пользователя, можно управлять в качестве триггера добавления/редактирования, если это позволяет ваш БД. Таким образом, вы можете убедиться, что идентификатор поставщика, используемый для этих связанных объектов, не является идентификатором пользователя, связанным с клиентами. (...WHERE userid NOT IN (SELECT userid FROM users WHERE customer = TRUE)
)
* Клиенты и поставщики имеют разные свойства/поля, поэтому не должны находиться в одной таблице.
. Они могут совместно использовать общий набор информации, такой как информация для входа на веб-сайт. – Marvo
, но проблема в том, что иногда мне нужно связать обоих поставщиков и клиентов с одной и той же таблицей. скажем, я хочу присоединиться к поставщикам к таблице под названием (Учетные записи) , и я хочу присоединиться к клиентам к та же таблица (Учетные записи) НО, каждая запись ACCOUNTS Должно быть связано с ОДНОМ пользователем (будь то заказчиком или продавцом)! Как я могу решить этот вопрос? – wadda7j
Я предполагаю, что когда вы присоединяетесь к таблице 'Accounts' либо: a) Поставщики и клиенты НЕ привязаны в одной записи - поэтому поле' entityID' в Accounts может быть Клиентом или Поставщиком - в этом случае используйте 'userID 'и у вас есть поле для' customer = TRUE/FALSE'. ИЛИ b) если Поставщики и Клиенты связаны в одной записи, то очевидные поля 'vendorID' и' customerID' (но я не думаю, что это то, что вы просили, поэтому используйте опцию a.) – aneroid
Возможно, у продавцов и клиентов есть отношение к таблице пользователей.
user
===========
userId
name
vendor
===========
vendorId
companyName
userId
customer
===========
customerId
source
userId
Тогда вы можете связаться с клиентами и поставщиками из тех же таблиц, но все же они могут совместно использовать одни и те же общие данные в таблице пользователей. Фактически, клиент также может быть продавцом.
Ваш вопрос может быть обобщен следующим образом: как выразить подклассы в реляционных таблицах?
Для общего ответа, увидеть это:
- 1. обобщения данных путем удаления дубликатов
- 2. Проблема обобщения данных привязки Android
- 3. «Множественное наследование» (отношение обобщения) в моделях данных
- 4. Стрелки обобщения
- 5. контрвариация в Обобщения C#
- 6. Магия Обобщения в Java
- 7. Обобщения в Java
- 8. обобщения в структурах - golang
- 9. Частичные Обобщения в Java
- 10. SQL Aggregation Функция/Окно для обобщения данных
- 11. SQL Server для дальнейшего обобщения данных сгруппированных
- 12. обобщения данных с помощью индекса я
- 13. Низкочастотный фильтр обобщения в C#
- 14. Обобщения в Java, стандартные значения
- 15. Структура Delphi Обобщения Класс
- 16. Обобщения C# .net
- 17. Использование обобщения по агрегированию
- 18. обобщения и интерфейсы enumeration
- 19. Производные типы и обобщения
- 20. Java, Обобщения, Merge, Сопоставимые
- 21. Обобщения по протоколу
- 22. Общие методы обобщения и расширения
- 23. Превалирующий метод обобщения 8
- 24. внедрения UML обобщения ограничений
- 25. Обобщения требует нового класса
- 26. SQL запросов для обобщения данных для каждого столбца в таблице
- 27. Использование эквивалентов Countifs & Lookups для обобщения данных в R
- 28. Условный группировки и обобщения кадр данных в [R]
- 29. Стратегия для обобщения и сушки
- 30. Метод для обобщения селекторов XPath
К сожалению, этот вопрос не подходит для SO. Пожалуйста, прочитайте http://stackoverflow.com/faq – Barranka
Это называется Party Model –