2015-06-27 2 views
3

Я знаю, что может показаться, что вопрос повторяется, но я прошу о моем случае. В моей базе данных у меня есть две таблицы для пользователя, а вторая - для изображений этого пользователя. Мой вопрос: должен ли я иметь столбец идентификаторов в таблице «Изображения»?Должен ли я иметь столбец идентификаторов в каждой таблице?

enter image description here

Я знаю, что большой вопрос (Должен ли я иметь столбец идентификаторов в каждой таблице?) Есть много ответов и большинство ответов сказать (это зависит от вашего случая), так что я хочу знать, может Случае, что я должен делать ?

+0

Все ли изображения связаны с одним пользователем или могут ли некоторые изображения относиться к нескольким пользователям? – barrowc

+0

Каждое изображение, связанное с одним пользователем. –

+0

Может ли пользователь иметь несколько изображений? –

ответ

2

Вам не нужен столбец идентификации. Если у вас нет таблицы, которая подключается к таблице изображений (например, данные об изображении или что-то в этом роде), или если вам нужно сортировать изображения пользователя к моменту их сохранения в базе данных, столбец идентификаторов в таблице изображений будет быть бесполезным. Наличие вашего первичного ключа, а также вашего кластерного индекса на userId + imageSrc даст вам лучший поиск. Обратите внимание, что в любом случае вам понадобится уникальный ImageSrc, иначе вы можете перезаписать изображения в файловой системе.

+1

Хороший ответ, но если я хочу сортировать изображения, я думаю, что лучше добавить столбец datetime вместо столбца идентификатора. –

+1

Если только для сортировки лучше использовать столбец идентификации, так как это пространство для хранения меньше, чем столбец datetime. Если вам действительно нужна дата, используйте столбец даты. –

-1

Да, в противном случае вы не сможете выбрать соответствующее изображение пользователя из таблицы изображений. (Это если вы решите пойти с 2 таблицами.)

Однако, если у пользователя будет только один связанный с ним образ, вы можете просто иметь столбец ImageSrc в таблице пользователя, содержащей src этого единственного изображения

+1

У пользователя много изображений. Я могу написать запрос (выберите ImageSrc из изображений, где UserID = 'somthing'), и получите все изображения для этого пользователя –

+0

В этом случае ваша вторая таблица должна содержать некоторую дополнительную информацию. В противном случае порядок и все остальное, связанные с вашим imageSrc, будут очень случайными. В этом случае может быть лучше иметь упорядочивающий столбец или сам идентификатор для таблицы изображений, а также дополнительный идентификатор столбца, который помогает присоединиться к этим двум таблицам. – Ionic