У меня есть stucture данных, который имеет следующие таблицыбазы данных Нормализация и структура
Customers
Transactions (Type A)
Transactions (Type B)
Мы добавляем Comments
таблицу
Customers
имеют еще один более Transactions A
и Transactions B
Comments
может быть связано либо Transactions
или Customer
У нас внутренняя дискуссия по базе данных формат.
Одна сторона хочет создать таблицу комментариев и 3 кросс-таблицы. Одна сторона хочет создать таблицу комментариев с внешним ключом для клиента и 2 ключа с нулевым значением для транзакций.
Есть ли правило нормальной формы, которое говорит, что один лучше другого? Есть ли консенсус?
EDIT:
Другие ответы и особенности
- Комментарии никогда не будет ассоциироваться с более чем одного клиента
- Комментарии никогда не будет связан с более чем одной транзакции
- Комментарии будут только когда-либо быть связанными с транзакцией A, транзакцией B или ни с одной; но никогда оба
- Клиентов и операции могут быть 0 или больше комментариев
Я голосую за «... создаю таблицу комментариев с внешним ключом для клиента и 2 ключа с нулевым значением для транзакций». IMHO ... PS: Есть ли вероятность того, что комбинация ID транзакции + Дата транзакции (например) будет уникальной в общесистемной? Некоторый «комбинированный внешний ключ», который однозначно идентифицировал транзакцию (независимо от типа a или типа b), был бы идеальным решением. – paulsm4
Дополнительная информация была бы полезна. Является ли законным для комментария быть связанным с несколькими клиентами или несколькими транзакциями одного типа (A или B)? Является ли законным для комментария быть связанным с клиентом, транзакцией A и транзакцией B? Требуется ли для комментариев иметь какое-либо из этих отношений? –