2015-07-01 2 views
-4

One Transaction can have many Trans_DetailSQL таблицы атрибутов и дизайн

Reletionship: Одна сделка может иметь много Trans_Detail

Trans_Detail использовать, чтобы сохранить детали сделки,
, таких как товары гостя взятыми из отеля и цены

Trans_Detail является использование для записи детали сделки,
Trans_Detail.Trans_ID является PK также и также FK,
может база данных будет дизайн, как это?
или есть какое-нибудь лучшее предложение?

+2

Может ли он быть разработан, как это - да. Это уместно для вашего использования, учитывая этот уровень детализации, о котором мы не знаем! – kayakpim

+0

Trans_ID как varchar (10) и Primary key/Foreign Key - не очень хорошая идея. Я бы сделал столбец 'ID BIGINT INDENTITY (1,1)' в таблице транзакций. Затем уникальный кластерный индекс на идентификаторе, уникальный некластеризованный индекс на Trans_ID. Измените Trans_ID в Trans_Detail на BIGINT и обратитесь к Transaction.ID ..... – CeOnSql

+0

Это зависит. Это зависит от того, чего вы пытаетесь достичь, чего хотите сохранить, какова ваша бизнес-проблема, какова ваша емкость хранилища, насколько «горячим», по вашему мнению, будет доступ к таблице, будет ли это таблица, используемая для отчетности. ... так много вопросов, но такой редкий вопрос. Предоставьте дополнительную информацию о вашем сценарии. – sarin

ответ

0

Первичный ключ должен быть уникальным. Если у параметра trans_detail может быть много строк для данного идентификатора транзакции, этот идентификатор транзакции не может быть уникальным.

Похоже, что trans_detail содержит строки, составляющие транзакцию, и что транзакция больше похожа на заказ.

Если это так, вы можете переименовать trans_detail в "trans_line". Первичный ключ может быть либо искусственным ключом (номер автоматического увеличения или что-то еще), либо если последовательность порядковых строк важна, вы можете включить это как поле в trans_line и создать составной первичный ключ между trans_id и последовательностью.

Я не большой поклонник сокращений в именах таблиц и столбцов - дополнительный набор текста стоит ясность ...

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