我有以下表格:
电影
movie_custom
每个表都有不同的数据,但我想确保某些列名称没有变化。例如,如果我在电影上将 format - VARCHAR(255)更改为 distribution_type - VARCHAR(30),我也想要确保在 movie_custom 上进行相同的更改。
有没有办法在MySQL中确保这一点?不知何故以某种方式将两列连在一起?
答案 0 :(得分:0)
评论太长了。
听起来你有一个糟糕的数据模型。如果您修复了数据模型,则可以解决问题。
你应该有一个带主键的电影数据库:
create table movies (
movieId int primary key auto_increment,
. . .
);
然后,第二个表应该有三列:
create table moviesCustom (
movieCustomId int primary key auto_increment,
movieId int not null,
username_id int,
constraint foreign key (movieId) references movies(movieId)
);
然后,当您需要两个表中的信息时,请使用join
。
答案 1 :(得分:0)
计划A
对于title
创建规范化表。然后,让[{1}}代替VARCHAR(...)
链接到该表。
然后从任何地方(基本或自定义)添加任何标题时,在该表中查找名称以获取ID(或创建新ID)。 / p>
这可能是将数据类型保留在一个位置{(1}}的唯一方法(并安抚戈登)。
但是,过度使用此方法(即以这种方式完成多列)将会降低性能。
建议:将MEDIUMINT UNSIGNED
更改为title
,因为有这样的数据类型。
计划B
结合两张桌子;使用特殊的year VARCHAR(4)
(可能为NULL)作为“基础”条目。