powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Структура таблиц и необязательные данные
3 сообщений из 3, страница 1 из 1
Структура таблиц и необязательные данные
    #32650242
anpv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Подскажите, правильна ли такая структура таблиц (с точки зрения нормализации данных).
Имеется таблица с информацией о покупателе, со следующими данными: фамилия, имя, отчество, паспорт, дата рождения и т.д. Из этих данных обязательными является только фамилия.
Тогда получается следующая структура таблиц:
CREATE TABLE `customer` (
`id` int not null auto_increment,
`last_name` varchar(20) not null,
PRIMARY KEY(`id`));
-------------
CREATE TABLE `cust_fname` (
`id` int not null auto_increment,
`id_customer` int not null,
`first_name` varchar(15) not null,
PRIMARY KEY (`id`,`id_customer`));
-------------
CREATE TABLE `cust_pname` (
`id` int not null auto_increment,
`id_customer` int not null,
`patronymic_name` varchar(20) not null,
PRIMARY KEY (`id`,`id_customer`));
-------------
CREATE TABLE `cust_passport` (
`id` int not null auto_increment,
`id_customer` int not null,
`s_pass` varchar(4) not null,
`n_pass` varchar(6) not null,
PRIMARY KEY (`id`,`id_customer`));
...

Получение информации одним запросом, с учетом того, что имени, отчества, паспортных данных может не быть:
SELECT
`customer`.`last_name`, `cust_fname`.`first_name`, `cust_pname`.`patronymic_name`, `cust_passport`.`s_pass`, `cust_passport`.`n_pass`
FROM
`customer`
LEFT JOIN `cust_fname` ON `cust_fname`.`id_customer`=`customer`.`id`
LEFT JOIN `cust_pname` ON `cust_pname`.`id_customer`=`customer`.`id`
LEFT JOIN `cust_passport` ON `cust_passport`.`id_customer`=`customer`.`id`
...
Рейтинг: 0 / 0
Структура таблиц и необязательные данные
    #32650255
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще то тебе в ветку по проектированию . Но от себя скажу, что я бы делить так не стал Твое поле фамилии не является, и не может являтся, уникальным. Как известно даже ФИО не дает уникальности. А ты так вот взял и раскидал...
...
Рейтинг: 0 / 0
Структура таблиц и необязательные данные
    #32650473
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае, ИМХО, не фига париться и следует все хранить в одной таблице. Весь результат титанических усилий - возможная экономия нескольких килобайт на диске (и то врядли - айдишники больше сожрут 8-) - смешно. А вот потери на постоянное соединение таблиц будут приличные.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Структура таблиц и необязательные данные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]