Следует ли использовать GUID в качестве внешнего ключа для многих таблиц

Я разработал базу данных для использования GUID для UserID, но я добавил UserIdв качестве внешнего ключа ко многим другим таблицам, и, поскольку я планирую иметь очень большое количество входных данных для базы данных, я должен хорошо спроектировать это.

Я также использую таблицы членства ASP (не профили, а только членство, пользователей и роли).

Итак, в настоящее время я использую GUID как PK и как FK во всех остальных таблицах. Возможно, это плохой дизайн? То, что я думаю, возможно, лучше, и является источником моего вопроса, должен ли я добавить в таблицу Users UserId (int) в качестве первичного ключа и использовать это поле в качестве внешнего ключа для других таблиц и пользователя GUID UserIdтолько для ссылки aspnet_membership?

aspnet_membership{UserID(uniqueIdentifier)}
Users{
UserID_FK(uniqueIdentifier) // FK to aspnet_membership table
UserID(int) // primary key in this table --> Should I add this
...
}
In other tables user can create items in tables and I always must add UserId for example:
TableA{TableA_PK(int)..., CreatedBy(uniqueIdentifier)}
TableB{TableB_PK(int)..., CreatedBy(uniqueIdentifier)}
TableC{TableC_PK(int)..., CreatedBy(uniqueIdentifier)}
...
5
задан Widor 16 May 2012 в 10:56
поделиться